htaccess用于子目录以防止脚本执行

时间:2012-11-05 08:35:42

标签: php

我有子目录'images',权限为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文件中是否有任何错误

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

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

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

这适用于我们的服务器。