我有一个用户付费支持的系统,每个用户都有一个文件夹.我的网站上有很多(比如200+)子文件夹,每个都需要CSS,图像,JS等...
我还每周为新用户注册时创建文件夹,每个用户都可以上传PHP脚本或JS脚本或图像.(他们问题的截图)
我的问题是:在我/.htacess,我有一个规则,检查PHP脚本并重定向到正确的页面,例如site.com/user/page将去site.com/user/page.php
我想要做的是防止用户破坏系统,例如:
site.com/user/upload/test将去他的test.php并运行它.
我该如何防止这种攻击?
Gab*_*rtz 20
阻止访问htaccess中的PHP文件,将此文件放在要阻止文件的文件夹中:
<Files ^(*.php|*.phps)>
order deny,allow
deny from all
</Files>
Run Code Online (Sandbox Code Playgroud)
或者在root .htaccess文件中,您可以:
<Directory ^user/upload>
<Files ^(*.php|*.phps)>
order deny,allow
deny from all
</Files>
</Directory>
Run Code Online (Sandbox Code Playgroud)
即使使用mod_rewrite,也会阻止访问user/upload文件夹中的所有php文件.
但是,如果你想让.php文件可供下载而不想让它们执行,你可以在.htaccess上使用它:
<FilesMatch "(.+)$">
ForceType text/plain
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
文件夹中的所有文件都将返回为text/plain.您可以在Directory标记中绑定它以从第二个示例获得类似的拒绝访问结果.
您还可以选择要传递的文件扩展名text/plain:
<FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi.+)$">
ForceType text/plain
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16884 次 |
| 最近记录: |