防止子目录中的.htaccess文件被执行

时间:2012-11-24 08:17:25

标签: php .htaccess file-upload

我有一项服务,允许用户上传任何他们喜欢的内容。我有代码执行和其他禁用,但我找不到一种方法来阻止他们上传的.htaccess文件执行。

1 个答案:

答案 0 :(得分:0)

您应始终重命名用户上传的文件!如果您不这样做,用户可以轻松上传hack.php,然后启动它以使您的网站遭到黑客攻击或滥用。所以这实际上是你的问题。

上传后重命名文件。在数据库中保留原始名称(以及大小,mime类型等)并通过脚本路由文件下载/视图,该脚本将从DB获取该原始名称并构建正确的标题,然后将file()该文件的内容提供给用户。这样可以防止文件在您的服务器上执行

或者如果那只是.htaccess的问题(但我敢说它更宽)那么你可以配置apache来忽略某些目录中的.htaccess。它需要计算机上的root权限,但您可以将<Directory FOLDER>块添加到主机配置并将AllowOverride None放入其中。

或者,只需在上传时检查目标文件名,然后拒绝任何.htaccess.htpassword。或者名称以.

开头的任何内容