.htaccess拒绝从除本地主机以外的所有主机查看目录

时间:2018-12-25 07:15:33

标签: php .htaccess

我似乎遇到了这样一种情况:.htaccess文件通过拒绝服务器端PHP对除加载小部件之外的所有内容的PHP访问而能够成功关闭我的网站。有没有一种方法可以防止用户在允许访问服务器上的脚本的情况下仍然浏览它们的目录(即,查找包含目录,图像目录等),而在目录中徘徊呢?如果是这样,我将如何去做?

我尝试关注另外一个stackoverflow question

order deny,allow
deny from all
allow from 127.0.0.1

但它也会产生相同的问题。例如,如果/ img /中的.htaccess文件包含这些行(并且仅包含这些行),则将不加载页面上的图像。

1 个答案:

答案 0 :(得分:1)

由于共享主机的选项有限,因此首先要指出的是文件系统权限非常重要。如果用户能够利用您的网站并在您的Webroot内的文件系统上写入或更改文件,那将非常糟糕。文件系统权限不应允许Web进程在您为此目的专门设置的目录之外的任何目录中写入文件。

给出警告,这是一个处理单个目录(如/ img目录)的解决方案。

在/ img目录中创建此.htaccess文件:

order allow,deny
<Files ~ "\.(jpg|jpeg|png|gif|bmp)$">
   allow from all
</Files>

这将允许正常功能访问图像文件,并且不允许访问其他任何文件。

希望您还能在此处看到所使用的模式,在该模式中,您将允许的文件扩展名列入白名单。您可以根据需要将相同的想法用于任何其他目录。