我有一项服务,允许用户上传他们喜欢的任何内容。我有代码执行和其他禁用,但我找不到阻止他们上传的 .htaccess 文件执行的方法。
问问题
346 次
1 回答
0
您应该始终重命名用户上传的文件!如果您不这样做,用户可以轻松上传hack.php
然后启动它以使您的网站被黑客入侵或滥用。所以这实际上是你的问题。
上传后重命名文件。在数据库中保留原始名称(以及大小、mime 类型等)并通过脚本路由文件下载/查看,该脚本将从数据库中获取原始名称并构建适当的标题,然后file()
将该文件的内容提供给用户。这将阻止文件在您的服务器上执行
或者,如果这.htaccess
只是问题(但我敢说它更广泛),那么您可以将 apache 配置为忽略某些目录中的 .htaccess。它需要机器上的root权限,但您可以将<Directory FOLDER>
块添加到主机配置并放入AllowOverride None
其中。
或者,只需在上传时检查目标文件名并拒绝任何.htaccess
和.htpassword
. 或者任何以名字开头的东西.
于 2012-11-24T08:26:29.883 回答