Map仅供web服务器访问,其他用户不可访问


Map only accessible for webserver and not for other users

在我的网站上,我使用了很多包含,大多数包含应该只能为web服务器访问,而不是为世界其他地方。因此,如果我包括"../include_map/file.php"在我的网站上的页面,它应该是不可能的请求与世界上的其他用户的URL("website.com/include_map/file.php")。是否有可能用包含文件来保护地图,以便只有web服务器可以包含这些文件?

PHP可以包含服务器硬盘上任何地方(也包括非公共目录)的文件。

例如,如果你的htdocs位于/var/www/domain/htdocs/,你也可以包含位于/var/www/domain/include_map的文件,而web服务器不允许从那里读取(如果配置正确)。

,然后可以测试使用www.yourdomain.com/../include_map/file.php访问该文件。如果你仍然可以像这样访问它,你的web服务器配置需要一些注意,以防止其他人读取你的日志和其他东西。

另一种方法是通过.htaccess或apache config拒绝访问目录。PHP仍然可以包含这些文件,而用户不能从互联网访问它们。

在apache配置中,你可以这样做:

<Directory /inlcude_map>
   Order Deny,Allow
   Deny from all
</Directory>

在。htaccess文件中你可以写

Order Deny,Allow
Deny from all

.htaccess文件应该位于您想要保护的目录中。请咨询您的服务器提供商,以找出最适合您的方法。正如评论中所说,你必须首先找出。htaccess是否适合你。

你可以照zuloo说的做。如果你想让它在任何条件下都能工作,你可以为它使用一个常数。

文件包括:

define('IS_APP', true);
require_once('some/file/to/include.php');
// your code here

包含的文件:

if(!defined('IS_APP')) {
   die('No direct access');
}
// your code here