我正在建立一个网站,人们可以将文件上传到特定的子目录。万一有人能够绕过过滤器上传潜在的恶意(可能是php)文件,我想知道是否有可能使恶意代码无法访问。我正在研究两种不同的方法。
第一个是查看是否有办法制作它,这样您就无法通过在浏览器中输入文件URL来访问子目录中的任何文件(www.example.com/images/blahblah.jpg),但是链接到<img src=images/blahblah.jpg />
实现此目的的第二种方法可能是使用.htaccess文件禁用子目录中的php。我试过php_admin_flag engine off
,
php_flag engine off
,
RemoveHandler .php
RemoveType .php
php_flag engine off
Options -ExecCGI
但每次尝试都不执行任何操作,或禁用目录中的所有内容。有没有理由这些不起作用?使用.htaccess禁用php或保护目录的最佳方法是什么?
答案 0 :(得分:1)
您可以将有关上传文件的元数据保存在Db中,并将内容存储在自定义扩展文本文件中。例如,上传的所有内容都可以存储为1.ext或file.my或根本不存在扩展名。当请求文件时,您将只读取并转储其内容。添加到此将重命名所有上传的文件。
您还可以将原始文件保留在文档根目录(及其子目录)之外,并在.htaccess的帮助下将所有请求转发到单个文件,然后调用entrance.php然后该php文件将只读取该文件转储其内容或发布404(如果未找到)或不允许的类型。
希望它有所帮助。