涉及不同域的Javascript级联注入 简单地说:
外部Javascript代码能否注入另一个托管在页面DOM中第三个不同域上的脚本 前任: 给定foo.com网站,有一个html脚本标记,其src设置为涉及不同域的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
http://bar.xyz/script.js
可以
script.js
injecthttp://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);
//…
})();