【问题标题】:Does outerHTML have the same XSS vulnerabilities as innerHTML?outerHTML 是否具有与 innerHTML 相同的 XSS 漏洞?
【发布时间】:2012-05-09 18:16:16
【问题描述】:

我们公司的安全扫描似乎一直挂在 swfobject.js 中的这个 outerHTML 属性上:

el.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + att + '>' + par + '</object>';

我熟悉与innerHTML 相关的XSS 漏洞,但您能举一些例子说明在这种情况下如何利用outerHTML 吗?我想知道扫描是否会产生误报——我认为 swfobject 背后的团队会解决所有 XSS 问题。

谢谢!

【问题讨论】:

    标签: security xss outerhtml


    【解决方案1】:

    如果您了解innerHTMLouterHTML 的工作原理,您可以自己回答问题:

    • innerHTMLel 节点的所有 childNodes 替换为从分配的字符串值解析的 NodeList
    • outerHTML 将节点 el itself 替换为从分配的字符串值解析的 NodeList

    一个例子:如果el是下面例子中的内部div

    <div id="outer"><div id="inner"> … </div></div>
    

    然后将innerHTMLouterHTML 设置为&lt;b&gt;foobar&lt;/b&gt; 结果:

    • innerHTML:

      <div id="outer"><div id="inner"><b>foobar</b></div></div>
      
    • outerHTML:

      <div id="outer"><b>foobar</b></div>
      

    所以无论你使用innerHTML 还是outerHTML 都没有关系。两者都容易受到 XSS 攻击。

    【讨论】:

      猜你喜欢
      • 2023-04-07
      • 1970-01-01
      • 2012-03-10
      • 2012-06-21
      • 2018-04-07
      • 2011-12-03
      • 2021-05-01
      • 2013-09-16
      • 2021-09-03
      相关资源
      最近更新 更多