php – MIME类型欺骗
作者:互联网
在php中检查mime类型非常简单,但据我所知,mime可能会被欺骗.攻击者可以使用例如jpeg mime类型上传php脚本.我想到的一件事是检查上传文件的文件扩展名,并确保它与mime类型匹配.所有这一切都假设上传目录是浏览器可访问的.
问题:是否还有其他技术可以防止“坏文件”进入mime类型欺骗?
解决方法:
简答:不.
更长的回答:
比较扩展并确保它与MIME类型匹配并不能真正阻止任何事情.正如评论中所说,修改文件扩展名更加容易. MIME类型和扩展名仅作为提示,它们没有固有的安全性.
确保传入的文件不会造成伤害,这在很大程度上取决于您对它们的目的是什么.在你的情况下,我明白你期待图像.所以你可以做的是首先执行一些健全性检查:扫描前几个字节以查看文件是否包含相关的图像标题签名 – 所有相关的图像格式都有这些.
“签名标题”可帮助您确定文件尝试模拟的图像格式类型.在下一步中,您可以检查其余内容是否符合基础图像格式.这将保证您的文件实际上是该特定格式的图像文件.
但即使这样,文件也可以通过以下方式精心制作:当您显示图像时,用于显示该图像的流行库(例如libpng等)会遇到攻击者在该库中找到的缓冲区溢出.
不幸的是,除了不允许来自客户端的任何输入之外,没有办法主动防止这种情况.
标签:html,spoofing,php,security,mime-types 来源: https://codeday.me/bug/20190930/1837070.html