由于在这方面一无所知,我打电话给SO社区来教育我。
在社区留言板上允许带有.html扩展名的<img>
来源是否安全?我见过的一个例子是有人采购了~20个这样的图像,当它们在页面上呈现时会输出查看者位置的字母。
您可以将PHP作为图像的一部分执行(这是通过使用PHP动态生成图像来显示有关远程盒子的信息的方式(;类似地,您可以强制服务器提供具有随机扩展名(包括.html(的正确标头的图像。
因此,限制img
标签中的扩展实际上不会实现任何目标;它总是在图像的上下文中执行,浏览器期望图像,如果返回任何其他内容,它也不会呈现。这些事情唯一重要的是可能的CSRF漏洞,因为无论图像有效性如何,浏览器都会始终请求目标URL,因此例如,您可以强制某人在查看您的头像时注销(以最简单的形式,您只需 http://thecurrentsite.com/?logout 作为头像(。因此,总而言之,您无需担心代码注入,但是即使您使用请求令牌,也最好限制可以插入的URL的可变性(禁止本地URL,页面片段标识符等(。