【问题标题】:Javascript cascade injection involving distinct domains涉及不同域的 Javascript 级联注入
【发布时间】:2017-06-27 01:58:53
【问题描述】:

简单地说:

外部 Javascript 代码能否注入托管在页面 DOM 中第三个不同域上的另一个脚本?

例如:

给定 foo.com 网站,有一个 html 脚本标签,其 src 设置为 http://bar.xyz/script.js
script.js 可以注入 http://qux.net/abc.js(托管在 qux.com) 吗?

http://foo.com/

  <script src="http://bar.xyz/script.js"></script>

  // Content of bar.xyz/script.js:
  !(function(){
    var k = document.createElement('script')
        , s = document.getElementsByTagName('script')[0];
    k.type='text/javascript'; k.async=true;
    k.src = document.location.protocol+'//qux.net/abc.js';
    s.parentNode.insertBefore(k,s);
    //…
  })();

我无法让 abc.js 被注入,也没有错误/警报接缝弹出到控制台。
此处是否适用任何安全限制政策?
我仍在寻找有关此的文章或 SO 线程...
谢谢。

【问题讨论】:

    标签: javascript browser cross-domain


    【解决方案1】:

    是的;一旦 Javascript 代码在您的源中运行,它就与您自己的代码完全没有区别,并且可以做任何您能做的事情。

    【讨论】:

    • 谢谢,所以脚本可以在此上下文中不受任何限制地导入第三方脚本?然后我想我的问题可能来自两者之间的脆弱逻辑……
    猜你喜欢
    • 2012-11-15
    • 1970-01-01
    • 2022-09-28
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多