在阅读了http://dsecrg.com/files/pub/pdf/XSS_in_images_evasion_bypass_(eng).pdf之后,很明显,允许用户上传图像会让您面临xss攻击。
我找不到任何php示例来说明如何为xss攻击筛选上载的图像。
我找到了一个编码器点火器,我正在使用。它的功能是xss_clean($file, IS_IMAGE),但只有一句话的文档,所以我不知道它是如何工作的,他们的论坛上有一条评论说它的误报率高得不合理,所以它不能在生产中使用。
您建议如何防止上传图像中的xss攻击?

最佳答案

只要您保持扩展正确(并且您的用户努力更新他们的浏览器),就不可能进行图像注入。
例如,如果有人将alert('xss');作为图像上传,而您拥有<img src='that-image.png'>,则它将作为png发出,javascript将不会执行(至少回到ie7)。重要的是你要对图片进行适当的重命名。
如果你有php>5.3和pecl扩展名,你可以用它来获取文件的mime类型,并有一个你允许的类型的白名单(png,jpg,gif我可以想象)。如果您使用的是Linux机器,finfo也可以帮助您实现这一点。

09-20 12:02