使用PHP来防止图像中的XSS攻击

Jus*_*tin 5 php security xss codeigniter

阅读http://dsecrg.com/files/pub/pdf/XSS_in_images_evasion_bypass_(eng).pdf后,很明显允许用户上传图片会让您受到XSS攻击.

我无法找到任何关于如何筛选上传图像进行XSS攻击的PHP示例.

我找到了一个CodeIgniter,我正在使用它.功能是xss_clean($file, IS_IMAGE),但它只有一个文档的句子,所以我不知道它是如何工作的,他们的论坛中的评论说它有一个不合理的高误报率,所以它不适用于生产.

您建议在上传的图像中防止XSS攻击?

Exp*_*lls 4

只要您保持扩展正确(并且您的用户勤于更新其浏览器),图像注入就不应该是可能的。

例如,如果有人alert('xss');以图像形式上传,而您有<img src='that-image.png'>,它将以 png 形式发出,并且 JavaScript 将不会执行(至少回到 IE7)。重要的是适当地重命名图像。

如果您有 php > 5.3 和finfoPECL 扩展,您可以使用它来获取文件的 mime 类型,并拥有允许的类型白名单(我想是 png、jpg、gif)。如果您使用的是 Linux 计算机,file也可能会帮助您。