文件共享网站中要避免的危险文件类型

JSW*_*189 4 php upload

我正在建立一个小型文件共享网站,用户可以上传内容.最近有人上传了一个PHP脚本,可能是为了损害网站.它让我思考:我应该阻止用户上传哪些文件类型?我已经阻止了.exe文件.哪些其他文件类型可能会对我的网站或其用户造成伤害?

可以在此处查看此脚本.

Mar*_*c B 9

不要将文件存储在可直接访问的位置 - 仅通过您控制的脚本提供访问权限.不要使用用户提供的文件名存储文件 - 使用您生成的文件名(最佳选择是将文件详细信息存储在数据库中,包括原始文件名,并使用该数据库记录的主键字段存储实际文件.

有了这两个,人们可以上传他们想要的antyhing,并且在您的服务器上执行/解释文件的可能性为零,因为它永远不会处于可以执行/解释的位置.

  • 好.有人上传了`nastyscript.php`,您的网站将其放入网站上的公共可访问区域.他们只是在浏览器中点击"http://yourserver.com/uploads/nastyscript.php",现在服务器很乐意执行他们上传的PHP脚本 - 允许任意(可能是恶意代码)运行.如果您将文件存储在站点的文档根目录之外,以便直接URL无法访问它,并使用一些随机文件名存储它,那么在浏览器中点击URL无法使服务器运行该文件. (2认同)

Nie*_*sol 5

看起来脚本在它仍然定义函数时被切断了,所以我无法弄清楚它正在做什么.

但是,如果您正确地执行操作,则应.htaccess在"上载文件"目录中包含以下文件:

Header set Content-Disposition "attachment"
Run Code Online (Sandbox Code Playgroud)

这将确保访问该目录中的任何文件将导致下载,并且该脚本将不会运行.

(实际上更好的是将文件放在webroot之外,并且有一个"下载程序"php脚本echo文件内容)