我将一些 XHTML 从 PHP 中分离出来,方法是将 XHTML 放入一个单独的文件中,然后在 PHP 脚本中使用 PHP 的 include()
函数。
这工作得很好,但是,如果用户知道地址,他们仍然可以直接访问 .html
文件。他们真的不能用它做很多事情,但我宁愿它不显示。
我在过去看到一些脚本使用某种形式的引荐来源检查,这是我要添加一些基本(注意我说的是“基本”)限制以防止它被直接访问查看?
谢谢!
澄清:我忘了说我想在 PHP 中执行此操作,因此没有网络服务器配置(将文件移出文档根目录,配置网络服务器以禁止访问等)。我认为这里最合乎逻辑的选择是使用 define()
常量检查,正如我在帖子中概述的那样,这确实是我在其他我忘记的脚本中看到的。我意识到这可能不是最好的解决方案,但考虑到可以访问的 html 文件没有特别的值(value),define()
常量应该足够了。
最佳答案
如果您当前将所有文件(如 index.php)放在 /something/public_html/
中,您需要将文件移动到 /something/
。这样用户就无法访问文件。
/public_html/
称为您的文档根目录。该文件夹映射到 example.com
,网站基本上从那里开始。如果您将文件移动到网站起始位置上方,则没有人可以通过浏览器访问这些文件。
正如 Ignacio 所说,如果打开安全模式,这将不适用于 include
。
其他方法是在文件顶部放置一些内容
if(!defined("RUNNING_SCRIPT"))
die("No Direct Access Allowed");
然后在你的PHP文件中放置
define("RUNNING_SCRIPT", true);
如果 RUNNING_SCRIPT
没有定义,这意味着他们正在直接访问它,它会阻止页面加载。这仅在 PHP 在 .html
文件上运行时有效。
您还可以使用 .htaccess
文件来禁止访问该文件夹。
关于php - PHP include() 的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2069309/