2

我正在制作一个网站,人们可以在其中将文件上传到特定的子目录。以防万一有人能够绕过过滤器上传潜在的恶意(可能是 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

但每次尝试要么什么都不做,要么禁用目录中的所有内容。这些不起作用是有原因的吗?禁用 php 或使用 .htaccess 保护目录的最佳方法是什么?

4

1 回答 1

1

您可以将有关上传文件的元数据保存在 Db 中,并将内容存储在自定义扩展文本文件中。例如,上传的所有内容都可以存储为 1.ext 或 file.my 或根本没有扩展名。当文件被请求时,您只需读取并转储其内容。添加到此将重命名所有上传的文件。

您还可以将原始文件保留在文档根目录(及其子目录)之外,并在 .htaccess 的帮助下将所有请求转发到单个文件让我们调用 entry.php 然后该 php 文件将简单地读取文件并转储其内容如果未找到或不允许类型,则发出 404。

希望能帮助到你。

于 2012-12-17T10:10:21.613 回答