【发布时间】:2012-06-24 14:12:41
【问题描述】:
我允许用户将图片上传到我们的网站。我是否认为我应该检查文件 .jpg/.jpeg/.gif 的扩展名以及 mime 类型以确保没有上传危险文件?
我还应该在上传时调整文件大小以检查它是否是实际的图像文件,而不是重命名的 exe 或类似文件?例如,如果调整大小失败,则它不是图像文件。
我还应该防范其他形式的攻击吗?
编辑:还在图像文件夹中添加一个 .htaccess 文件,因此 php 文件无法执行:
AddHandler cgi-script .php .php3 .php4 .phtml .pl .py .jsp .asp .htm .shtml .sh .cgi
Options -ExecCGI
order deny,allow
deny from all
【问题讨论】:
-
不要依赖用户给你的任何东西;完全忽略并丢弃它们的文件名,包括扩展名。查看文件内部并确保它看起来像你想要的,如果可以的话,进一步清理它。然后生成您自己的安全文件名。为了提高安全性,请考虑将其保存在网络服务器的文档根目录之外,并且仅通过您自己的脚本传递文件。
-
以上问题现已重新打开。
标签: php security file-upload upload