0

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

4

1 回答 1

0

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

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

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

或者,只需在上传时检查目标文件名并拒绝任何.htaccess.htpassword. 或者任何以名字开头的东西.

于 2012-11-24T08:26:29.883 回答