Jen*_*ohn 3 javascript security jquery dom inject
好的.我只是想在Facebook.comDOM元素中使用jQuery库.实际上,Facebook没有使用jQuery.所以我试图在下面注入JS片段以使jQuery页面可用.
var jq = document.createElement('script');
jq.src = "//code.jquery.com/jquery-latest.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);
setTimeout(function () {
$jq = jQuery.noConflict();
}, 5000);
Run Code Online (Sandbox Code Playgroud)
但是,我无法在任何浏览器中使用任何"jQuery"功能. $已经从Facebook定义了我变量的错误,如jQuery,$jq.上面的代码适用于其他网站,包括Google.com.
在Chrome中,它facebook.com也会出现以下错误.
拒绝加载脚本' https://code.jquery.com/jquery-latest.min.js ',因为它违反了以下内容安全策略指令:"script-src*.facebook.com*.fbcdn.net*. facebook.net*.google-analytics.com*.virtualearth.net*.google.com 127.0.0.1:**.spotilocal.com:*'unsafe-inline''unsafe-eval'*.akamaihd.net*.atlassolutions .com blob:chrome-extension:// lifbcibllhkdhoafpjfnlhfpfgnpldfl".
有谁遇到过这个问题?请分享.提前致谢.
注意:我可以jQuery通过将整个代码粘贴到控制台来利用功能,但我需要知道导致此问题的原因和任何替代解决方案(如果有的话).
您面临的问题是内容安全策略标头.这允许仅从页面本身的HTTP标头中提供的白名单站点使用脚本.您可以在HTML5Rocks上阅读有关其工作原理的更多信息.
没有办法绕过这个政策:Facebook使用它来防止人们被说服(参见"社会工程")执行任意Javascript代码,让其他人访问他们的帐户.
最好的解决方案不是使用jQuery库,而是使用本机Javascript来进行操作.
| 归档时间: |
|
| 查看次数: |
447 次 |
| 最近记录: |