Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
涉及不同域的Javascript级联注入 简单地说:_Javascript_Browser_Cross Domain - Fatal编程技术网

涉及不同域的Javascript级联注入 简单地说:

涉及不同域的Javascript级联注入 简单地说:,javascript,browser,cross-domain,Javascript,Browser,Cross Domain,外部Javascript代码能否注入另一个托管在页面DOM中第三个不同域上的脚本 前任: 给定foo.com网站,有一个html脚本标记,其src设置为http://bar.xyz/script.js 可以script.jsinjecthttp://qux.net/abc.js(托管在qux.com上) http://foo.com/ //bar.xyz/script.js的内容: !(功能(){ var k=document.createElement('script') ,s=documen

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

前任: 给定foo.com网站,有一个html脚本标记,其src设置为
http://bar.xyz/script.js

可以
script.js
inject
http://qux.net/abc.js
(托管在qux.com上)

http://foo.com/
//bar.xyz/script.js的内容:
!(功能(){
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,也无法在控制台中弹出错误/警报接缝。
这里是否适用任何安全限制策略?
我仍在寻找关于这方面的文章……

谢谢。

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

谢谢,这样脚本就可以导入第三方脚本而不受此上下文的任何限制了?那么我想我的问题可能来自于两者之间脆弱的逻辑…
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);
    //…
  })();