3

我有权限为 777 的子目录“图像”,可以从该文件夹中的访问者上传图像。有 .htaccess 文件以防止脚本执行和更高的安全性

<Files ^(*.jpeg|*.jpg|*.JPEG|*.JPG|*.png|*.gif)>
    order deny,allow
    deny from all
</Files>

<FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi)$">
ForceType text/plain
</FilesMatch>

但是当我在浏览器中请求 images/page.php 时,它正在工作,这意味着 .htaccess 不起作用。我想阻止这个文件夹成为可执行文件。

我的 .htaccess 文件中是否有任何错误

4

2 回答 2

2

这里还有一条评论,我建议对您的脚本规则进行不区分大小写的检查,即:

<FilesMatch "(?i)\.(php5|php4|php|php3|php2|phtml|pl|py|jsp|asp|htm|shtml|sh|cgi)$">
    ForceType text/plain
</FilesMatch>

这适用于我们的服务器。

于 2015-02-20T05:39:31.537 回答
0

当然,您可以访问所有 .php 文件,因为您只是禁止访问图像文件。我认为第一个正则表达式的末尾也应该有一个 $ 。也许你的意思是这样的:

<Files *>
    order deny,allow
    deny from all
</Files>

<Files ^(*.jpeg|*.jpg|*.JPEG|*.JPG|*.png|*.gif)$>
    order deny,allow
    allow from all
</Files>

<FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi)$">
    ForceType text/plain
</FilesMatch>
于 2012-11-05T08:56:17.320 回答