使用 .htaccess 禁用子目录 php/access



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

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

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

希望对您有所帮助。

最新更新