通过 <img>-tag 注入 javascript

Posted

技术标签:

【中文标题】通过 <img>-tag 注入 javascript【英文标题】:Injecting javascript thourgh <img>-tag 【发布时间】:2012-01-07 01:13:18 【问题描述】:

我想知道是否可以通过 img-tag 注入一些 javascript 代码。场景是这样设置一个html页面

<img src="anotherdomain.com/someimage.jpg" />

另一个域是我的域。是否可以将对 /someimage.jpg 的调用重定向到另一个包含请求图像时执行的 som javascript 代码的文件?

【问题讨论】:

不知道为什么这被否决了。这是一个合理的问题,而不是可以通过互联网搜索轻松找到答案的问题。 这是一个很好的问题,因为 IE 有遵守服务器发送的 Content-Types 的历史,无论它们是什么。幸运的是,这似乎不再是这样了。 【参考方案1】:

没有。问题(如果你想这样称呼它)是有问题的 URL 被解释为图像数据,而不是 JS 脚本。因此,无论它是什么或如何重定向,它都不会被评估为 JS。

注意:

【讨论】:

【参考方案2】:

浏览器不应尝试将通过&lt;img&gt; 标记接收的代码作为JavaScript 执行。该脚本将被传送到浏览器,但取而代之的是无法显示的损坏图像。

作为基本安全原则,浏览器只会执行在&lt;script&gt; 标记或onclick,onmouseover,onmouseout,etc... 属性中收到的脚本

【讨论】:

所以你唯一能做的“有趣”的事情就是将它重定向到另一个图像? @MathiasBak 差不多 - 或者发送一个非常大的文件,占用客户端(和源服务器)的带宽。【参考方案3】:

不,目前所有主流浏览器都不会接受 javascript 代码

【讨论】:

以上是关于通过 <img>-tag 注入 javascript的主要内容,如果未能解决你的问题,请参考以下文章

iOS webview注入JS

React/Ionic:不通过 <img/> 标签渲染 SVG

从头认识Spring-2.4 基于java的标准注解装配-@Inject-通过构造器方法注入

xss注入方法及验证方法

xss注入方法及验证方法

BeautifulSoup 创建一个 <img /> 标签