为了防止PHP本地文件包含攻击,我想完全禁止执行一个目录中的所有PHP文件。在.htcaccess文件中使用php_flag engine off
行将导致500错误。根据another question,这是由于PHP的安装方式。
如果PHP安装无法更改,是否有其他方法可以阻止PHP执行?
更新:文件不一定以.php结尾。
为了防止PHP本地文件包含攻击,我想完全禁止执行一个目录中的所有PHP文件。在.htcaccess文件中使用php_flag engine off
行将导致500错误。根据another question,这是由于PHP的安装方式。
如果PHP安装无法更改,是否有其他方法可以阻止PHP执行?
更新:文件不一定以.php结尾。
4条答案
按热度按时间o4hqfura1#
将其添加到
.htaccess
文件hs1ihplo2#
你正在通过“允许所有,然后拒绝”的逻辑来构建你的站点。你应该用“拒绝所有,然后允许”的逻辑来构建它。例如,你告诉Apache服务于一个特定目录下的所有文件,然后你覆盖那个配置来告诉Apache不服务于那个目录下的一些文件。也就是说,你可能有这样的东西:
目录布局如下:
有了这个设置,任何人都可以直接请求
http://foo.com/config.php
或http://foo.com/lib/etc.php
,这正是你试图阻止的。与其为你想拒绝的每一个文件添加单独的例外,不如反过来开始。也就是说,如果你有你不想被服务的文件,那么不要把它们放在文档根目录。注意,DocumentRoot现在被设置为项目中的一个子目录。只将您的公共资源放在这个目录中。所有其他文件都在公共目录之外(即,在公共目录之上),因此不能由Apache提供服务,同时仍然允许PHP包含它们。
h7wcgrx33#
为了保护您的网站免受后门访问文件的攻击,您需要创建一个.htaccess文件,并将其上载到您的站点所需的目录中。
创建一个名为.htaccess的空白文件,并将以下代码粘贴到该文件中。
lo8azlld4#
在
<?php
标头下添加此内容,这将阻止直接执行php