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