通过<img>标签注入javascript

14

我想知道是否可以通过img标签注入一些JavaScript代码。场景是这样的,一个人设置了一个像这样的HTML页面

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

Anotherdomain是我的域名。是否可以将对/someimage.jpg的调用重定向到包含某些JavaScript代码的另一个文件,当请求该图像时执行该代码?


2
不确定为什么这个被踩了。这是一个合理的问题,而且答案并不容易在互联网搜索中找到。 - Michael Berkowski
这是一个很好的问题,因为IE有遵守服务器发送的Content-Type的历史记录,无论它们是什么。幸运的是,似乎这种情况不再存在了。 - mdenton8
3个回答

8

浏览器不应尝试通过<img>标签接收的代码作为JavaScript执行。该脚本将被传递到浏览器,但在其位置上会显示一个无法显示的损坏图像。

浏览器仅会执行在<script>标签或onclick,onmouseover,onmouseout,etc...属性中接收到的脚本,这是一项基本的安全原则。


那么你唯一可以做的“有趣”事情就是将它重定向到另一张图片? - Mathias Bak
2
@MathiasBak 大致上就是 - 或者发送一个非常大的文件,占用客户端(和源服务器)的带宽。 - Michael Berkowski

2

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


1
不是的。问题(如果你想这么称呼它)是所涉及的URL被解释为图像数据,而不是JS脚本。因此,无论它是什么或如何重定向,它都不会作为JS进行评估。
注意:script标签可以跨域工作,因此您应该只使用它。

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