涉及不同域的Javascript级联注入

时间:2017-06-26 17:57:17

标签: javascript browser cross-domain

简单地说:

外部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线程谈论这个...
谢谢。

1 个答案:

答案 0 :(得分:0)

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