哪些浏览器允许javascript作为图像标记的源?

哪些浏览器允许javascript作为图像标记的源?,javascript,xss,security,Javascript,Xss,Security,我听说一些XSS攻击可以通过将一个图像发布到具有javascript作为src属性的站点来完成。是否有某些浏览器可以保护我免受此类攻击?不确定在哪些浏览器上检测到这种攻击,但以下是如何防止这种攻击: 在GET和POST参数中需要身份验证,而不仅仅是cookies 检查HTTP Referer头 确保没有crossdomain.xml文件授予对Flash电影的意外访问 限制身份验证cookie的生存期 处理帖子时,如果您知道URL参数应该来自表单,请忽略这些参数 在所有表单提交和副作用URL中都

我听说一些XSS攻击可以通过将一个图像发布到具有javascript作为src属性的站点来完成。是否有某些浏览器可以保护我免受此类攻击?

不确定在哪些浏览器上检测到这种攻击,但以下是如何防止这种攻击:

  • 在GET和POST参数中需要身份验证,而不仅仅是cookies
  • 检查HTTP Referer头
  • 确保没有crossdomain.xml文件授予对Flash电影的意外访问
  • 限制身份验证cookie的生存期
  • 处理帖子时,如果您知道URL参数应该来自表单,请忽略这些参数
  • 在所有表单提交和副作用URL中都需要一个秘密的、特定于用户的令牌来防止CSRF;攻击者的站点无法在其提交中放置正确的令牌

来源:

我知道没有浏览器允许在图像标记的
src=
属性中执行javascript。如果任何浏览器存在此漏洞,则应为该浏览器发布CVE编号,并对其进行修补编辑:
我已经针对最新的IE8、chrome和firefox进行了测试,他们都解决了这个问题。
如果你仍然容易受到攻击,那么你手上就有了更大的问题,因为攻击者最有可能在你的盒子上弹出一个外壳

但是,
可用于执行javascript。因此,如果攻击者可以控制部分源代码,他可以注入如下字符串:
src=“fake.jpg”onload=“alert(/xss/)”
。这就是为什么
htmlspeicalchars($image\u location,ENT\u QUOTES)而不是
htmlspecialchars($image\u location)
。另一种方法是使用它,它能够像这样自动删除javascript

如果您想保护自己的浏览器免受XSS攻击,那么应该使用noscript


允许使用图像标记可以利用基于GET的XSRF。如果软件只是做一个referer检查,这尤其糟糕。然而,大多数应用程序使用基于令牌的xsrf保护,这使得请求不受此攻击的影响。然而,您的站点可能会被用来攻击其他人的站点,并伪造GET请求,但这并不是一个非常严重的威胁。一种保护方法是确保该位置实际存在图像,如果不存在图像,则拒绝img标签

Mozilla Firefox w/addon NoScript。基本上强制您从未知源手动运行Java脚本。

来自:

使用JavaScript指令的Image XSS(IE7.0不支持图像上下文中的JavaScript指令,但它在其他上下文中也支持,但以下说明了在其他标记中也可以使用的原则-我可能稍后会对此进行修订):



浏览器支持:[IE7.0 |IE6.0 | NS8.1-IE][NS8.1-G | FF2.0][O9.02]

您还可以通过将
src
属性指向特定URL来进行XSRF(“海上冲浪”)攻击。你确定吗?因为根据,至少在过去有一段时间,你可以使用
javascript:
URL方案输入图像数据…@Weston C是的,我100%同意这一点,本文所指的是在你的地址栏中键入
javascript:alert('js!')
。如果您不相信我,请尝试编写一个带有图像标记的.html文件,其中包含
javascript:
。我不同意@Rook。我在好几个地方看到过这一点。据我所知,这只是几年前的一个问题,所以我假设只有较旧的浏览器存在此漏洞,但最好有一个列表。@Abe Miessler如果你能给我看一些代码或任何证据,我会更改我的帖子,但在此之前,我认为这是十年前修补过的,或者从来都不是问题。虽然今天可能有也可能没有任何浏览器尊重js URL图像方案,但这正是Critchelow所说的:“当我请求帮助时,Martin Webb在comp.lang.javascript新闻组上提供了javascript:imageData方法。这使用javascript url为IMG元素的src=属性或图像对象的.src属性提供值。“这可能是Netscape Navigator的问题,在Safari或Firefox中似乎不起作用,但很难说这是因为它不受支持,还是因为我没有正确输入原始GIF数据。只是写了同样的…:)好的!
<IMG SRC="javascript:alert('XSS');">