我检查文件的扩展名和mime类型 - 还有什么我可以做的,以帮助使文件上传更安全吗?
它是一个化身(所以所有图像都在一个文件夹中).我正在考虑使用htaccess来禁止任何php执行只是因为某些php文件在那里找到了它的方式.你怎么看?
Pek*_*ica 19
文件扩展名和mime类型都不能为您提供处理图像文件的100%安全性.但只要您不打算执行该文件(例如,通过使用include()),这不是问题,您不需要检查PHP代码或其他任何东西.使用伪造图像文件可以想象的唯一安全漏洞将利用浏览器的渲染引擎.这不可能有效地防止服务器端,并且是浏览器供应商的责任.
因此,只要您确保使用is_uploaded_file()和move_uploaded_file()处理上传时,您应该没问题,至少在图像格式方面是这样.请务必阅读下面的@ bobince帖子并按照链接进行操作,它在处理文件时包含一些关于其他安全方面的重要信息.
但是,您可以提供完全最高的安全性,当然可以使用GD的imagecopy将图像复制到新的图像容器中.这将删除文件中包含的任何ID3和其他头信息,并可能破坏任何漏洞利用尝试(GD可能会阻塞此类文件并返回错误).当然,这仅适用于GIF,JPEG和PNG,您可能遇到一些问题,如Alpha通道和颜色配置文件问题.
bob*_*nce 17
永远不要使用用户提交的文件名; 组成新的,如"随机数".jpeg."消毒"文件名比你想象的更难,特别是如果应用程序需要能够在Windows服务器上运行.
对于图像,使用PHP getimagesize函数来确定图像的文件类型,而不是查看高度不可靠的文件名和mimetype提交.禁止不解析为图像的上传.
对于要下载的文件,请使用Content-Disposition: attachment标头停止IE浏览HTML内容并在浏览器中显示.
对于必须以内联方式显示的文件,您必须从主站点的不同主机名提供这些文件,否则其中的HTML内容可以跨站点脚本进入您的安全上下文.
使文件上载功能安全很难.更多讨论.
| 归档时间: | 
 | 
| 查看次数: | 5791 次 | 
| 最近记录: |