编程语言
首页 > 编程语言> > php – MIME类型欺骗

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