众所周知,旧版本的 MSIE(8 之前)有一个讨厌的习惯,即如果图像“看起来像”HTML,则将其视为 HTML,这可能会导致允许人们上传图像的网站出现严重漏洞。虽然在 IE8 中已经修复了,但是还是有很多 IE7 及之前的版本,所以需要解决这个问题。所以问题是,如何最好地解决它,给定:
- 具有文件上传功能的 PHP 站点
- 不重新编码图像(即不能使用 ImageMagick 之类的东西)
- 应允许直接访问图像
- 我们不能禁止人们使用“错误”的扩展
检查前 256 个字节是否有类似 <(html|body|img|script|head)> 的内容就足够了吗?有什么更好的方法吗?