小编典典

防止直接访问 php 包含文件

all

我有一个 php 文件,我将专门用作包含。因此,当通过键入 URL 而不是包含在内直接访问它时,我想抛出一个错误而不是执行它。

基本上我需要在 php 文件中进行如下检查:

if ( $REQUEST_URL == $URL_OF_CURRENT_PAGE ) die ("Direct access not premitted");

是否有捷径可寻?


阅读 54

收藏
2022-08-08

共1个答案

小编典典

对于通用的“在您可能完全控制或可能不完全控制的 Apache 服务器上运行的 PHP 应用程序”情况,最简单的方法是将您的包含放在一个目录中,并在您的
.htaccess 文件中拒绝对该目录的访问。为了省去谷歌搜索的麻烦,如果您使用的是
Apache,请将其放在您不想访问的目录中名为“.htaccess”的文件中:

Deny from all

如果您实际上可以完全控制服务器(这些天甚至对于小应用程序比我第一次写这个答案时更常见),最好的方法是将要保护的文件粘贴到您的 Web
服务器提供服务的目录之外. 因此,如果您的应用程序位于
/srv/YourApp/,请将服务器设置为从其中提供文件/srv/YourApp/app/并将包含的内容放入
/srv/YourApp/includes,因此实际上没有任何 URL 可以访问它们。

2022-08-08