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

时间:2012-08-10 17:16:55

标签: php codeigniter security xss

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

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

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

您建议在上传的图片中阻止XSS攻击?

2 个答案:

答案 0 :(得分:4)

只要您保持扩展名正确(并且您的用户都在努力更新浏览器),就不应该进行图像注入。

例如,如果有人将alert('xss');上传为图片并且你有<img src='that-image.png'>,那么它将作为png发出,JavaScript将无法执行(至少返回到IE7)。重要的是你要适当地重命名图像。

如果你有php&gt; 5.3和finfo PECL扩展,您可以使用它来获取文件的mime类型,并具有您允许的类型的白名单(我想象的是png,jpg,gif)。如果您使用的是Linux计算机,file也可以为您提供帮助。

答案 1 :(得分:0)

在CodeIgniter中有很多方法可以阻止XSS。您可以在获取值时启用它,例如 - &gt; post('data',true)。第二个参数是XSS bool。

另外,请勿使用HTML IMG标记。使用CodeIgniter,它将清理,查看并更容易显示图像。

只是我的两分钱!