我正在建立一个小型文件共享网站,用户可以上传内容.最近有人上传了一个PHP脚本,可能是为了损害网站.它让我思考:我应该阻止用户上传哪些文件类型?我已经阻止了.exe文件.哪些其他文件类型可能会对我的网站或其用户造成伤害?
不要将文件存储在可直接访问的位置 - 仅通过您控制的脚本提供访问权限.不要使用用户提供的文件名存储文件 - 使用您生成的文件名(最佳选择是将文件详细信息存储在数据库中,包括原始文件名,并使用该数据库记录的主键字段存储实际文件.
有了这两个,人们可以上传他们想要的antyhing,并且在您的服务器上执行/解释文件的可能性为零,因为它永远不会处于可以执行/解释的位置.
看起来脚本在它仍然定义函数时被切断了,所以我无法弄清楚它正在做什么.
但是,如果您正确地执行操作,则应.htaccess在"上载文件"目录中包含以下文件:
Header set Content-Disposition "attachment"
Run Code Online (Sandbox Code Playgroud)
这将确保访问该目录中的任何文件将导致下载,并且该脚本将不会运行.
(实际上更好的是将文件放在webroot之外,并且有一个"下载程序"php脚本echo文件内容)
| 归档时间: |
|
| 查看次数: |
2440 次 |
| 最近记录: |