禁用firefox同源策略
我正在开发一个本地研究工具,要求我closuresFirefox的同源策略(就脚本访问而言,我不太在乎跨域请求)。
更具体地说,我希望主机域中的脚本能够访问页面中embedded的任何iframe中的任意元素,而不pipe它们的域是什么。
我知道以前的问答提到了CORS FF扩展,但这不是我所需要的,因为它只允许CORS,而不是脚本访问。
如果不能轻易完成的话,我还要感谢任何见解,指向我可以修改以禁用SOP的FF src代码的特定部分,以便我可以重新编译FF。
有一个Firefox扩展,将CORS头添加到2015年3月5日发布的最新版Firefox( build 36.0.1 )上的任何HTTP响应中。 我testing了它,它可以在Windows 7和Mavericks上运行。 我会引导你完成工作的步骤。
1)获得扩展
你可以从这里 (作者构build)或从这里 (镜像,可能不会更新)下载xpi。
或从GitHub下载文件 。 现在它也在Firefox Marketplace上: 在这里下载 。 在这种情况下,单击“安装”后会安装插件,您可以跳到步骤4。
如果你下载了xpi,你可以跳到第3步。如果你从GitHub下载了zip,请转到第2步。
2)build立xpi
你需要提取zip文件,进入“cors-everywhere-firefox-addon-master”文件夹,select所有项目并压缩它们。 然后,将创build的zip重命名为* .xpi
注意:如果你使用的是OS X的gui,它可能会创build一些隐藏的文件,所以你最好使用命令行。
3)安装xpi
你可以将xpi拖放到firefox中,或者转到:“about:addons”,点击右上angular的cog,select“从文件中添加”,然后select你的.xpi文件。 现在,重新启动Firefox。
4)让它工作
现在,扩展将不会默认工作。 您需要将扩展名图标拖到扩展栏上,但不用担心。 有图片!
- 点击Firefox菜单
- 点击自定义
- 将CorsE拖到栏中
- 现在,点击图标,当它是绿色时,CORS标题将被添加到任何HTTP响应中
5)testing它是否工作
jQuery的
$.get( "http://example.com/", function( data ) { console.log (data); });
JavaScript的
xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4) { console.log(xmlhttp.responseText); } } xmlhttp.open("GET","http://example.com/"); xmlhttp.send();
6)最后的考虑
请注意, https到http是不允许的 。
可能有办法解决这个问题,但这是背后的问题。
about:config -> security.fileuri.strict_origin_policy -> false
我意识到我的旧答案是downvoted,因为我没有具体说明如何禁用FF的相同的来源政策。 在这里我会给出更详细的答案:
警告:这需要重新编译FF,而新编译的Firefox版本将不能再次启用 SOP。
查看Mozilla的Firefox源代码,在src目录中findnsScriptSecurityManager.cpp。 我将使用这里列出的例子: http : //mxr.mozilla.org/aviarybranch/source/caps/src/nsScriptSecurityManager.cpp
转到function实现nsScriptSecurityManager :: CheckSameOriginURI,这是线路568截至date03/02/2016。
使该函数总是返回NS_OK。
这将会禁用SOP。
@Giacomo的浏览器插件答案应该对大多数人有用,而且我已经接受了这个答案,但是,对于我个人的研究需求(TL;这里不解释),这是不够的,我认为其他研究人员可能需要做什么我在这里完全杀了SOP。
截至2016年9月这个插件是最好的禁用CORS : https : //github.com/fredericlb/Force-CORS/releases
在选项面板中,您可以configuration要注入哪个标题以及自动启用特定网站。
我写了一个附件来克服这个问题在Firefox(Chrome,Opera版本将很快)。 它与最新的Firefox版本,与美丽的用户界面和支持JS正则expression式: https : //addons.mozilla.org/en-US/firefox/addon/cross-domain-cors