为什么<img>标签的src属性允许使用javascript: URI?

3
在我看过的几乎所有XSS缓解指南中,都提到了以下模式:
<img src="javascript:evil();">

这有什么合法的用途吗?你能否使用JS代码生成Base64编码的表示或其他东西呢?


这里看来,我的建议是不被允许的。 - wwaawaw
2个回答

1

它没有很多合法的用途。

它的工作方式可能是因为你可以在此使用任何协议,一些浏览器实现了javascript伪协议,可以从多个地方调用。


1
现代浏览器不支持javascript:协议用于<img>元素 - 请尝试这个:http://jsfiddle.net/LXwM9/ - Richard JP Le Guen
@RichardJPLeGuen 而 Firefox 禁用了它的地址栏。一些浏览器似乎仍然必须允许 src 属性使用它。 - alex
我只是不会把那些称作现代浏览器 :P - Richard JP Le Guen

1

我本想链接到 ha.ckers.org 的 XSS 作弊表,但现在看起来它重定向到了 OWASP 列表。太糟糕了;我记得它曾经更深入一些。 - Richard JP Le Guen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接