你们需要将这些档案放在公共文件夹之外,放在你的网络服务器上。 大部分(所有?)网络主办人应当有能力改变网站的文件根基。
例如,请指出,贵国的所有档案都由以下东道名录提供:/home/username/www/example.com/
。
这意味着,该名录内的任何东西都可以在互联网上看到。 如果你去<代码>http://example.com/myfile.png,则该编码可在<代码>/home/username/www/example.com/myfile.png上查阅。
你们想要做的是建立一个新的名录,例如public<>/code>,该名录将服务于你的档案,并将文件放在其中。 您提出以下要求:<代码>http://example.com/myfile.png
。 页: 1 现在,在<代码>example.com的目录内居住的任何东西都可以在你的网站上看到。 您可以创建新的名录,例如 私人<>/code>,其中你的敏感内容将包括档案。
因此,你有两个文件:index.php
, 供您网站使用,灵敏度:php
, 其中载有密码和此类内容。 您将设立这样的机构:
/home/username/www/example.com/public/index.php
/home/username/www/example.com/private/sensitive.php
<代码>index.php file isprofile to the Internet, but tive.php
is not. 包括<密码>敏感度.php,你仅包括完整的档案途径:
require_once("/home/username/www/example/com/private/sensitive.php");
您也可将申请根基(贵国网站档案的基础,虽然不是公开查阅的档案的根源)作为<代码>define,可能的话,放在某个地方的汇辑中,并使用这一根基,例如:
require_once(APP_ROOT . "sensitive.php");
If you can t change the document root, then what some frameworks do is use a define
to note that the file shouldn t be executed directly. You create a define in any file you want as an entry point to your application, usually just index.php
, like so:
if (!defined( SENSITIVE )) {
define( SENSITIVE , SENSITIVE );
}
然后,在任何敏感的档案中,你检查了该档案的定点,如果其仓储,则予以撤销,因为这意味着档案正在直接执行,而不是通过你的申请:
if (!defined( SENSITIVE )) {
die("This file cannot be accessed directly.");
}
此外,确保你在公开查阅时(实际上,即使不是的话)列入档案,并适当推广,例如<代码>.php,以便网络服务器知道将其作为PHP文档执行,而不是作为便捷文本。 有些人使用<代码>.inc,表示包括档案,但如果服务器不承认这些档案是用购买力平价处理,则你的代码将公开向任何关心的人开放。 这不好! 为了防止这种情况,总是把你的档案称为.php
的延伸。 如果您希望使用<代码>.inc.inc.php。