我有一项服务,允许用户上传任何他们喜欢的内容。我有代码执行和其他禁用,但我找不到一种方法来阻止他们上传的.htaccess文件执行。
答案 0 :(得分:0)
您应始终重命名用户上传的文件!如果您不这样做,用户可以轻松上传hack.php
,然后启动它以使您的网站遭到黑客攻击或滥用。所以这实际上是你的问题。
上传后重命名文件。在数据库中保留原始名称(以及大小,mime类型等)并通过脚本路由文件下载/视图,该脚本将从DB获取该原始名称并构建正确的标题,然后将file()
该文件的内容提供给用户。这样可以防止文件在您的服务器上执行
或者如果那只是.htaccess
的问题(但我敢说它更宽)那么你可以配置apache来忽略某些目录中的.htaccess。它需要计算机上的root权限,但您可以将<Directory FOLDER>
块添加到主机配置并将AllowOverride None
放入其中。
或者,只需在上传时检查目标文件名,然后拒绝任何.htaccess
和.htpassword
。或者名称以.