为了账号安全,请及时绑定邮箱和手机立即绑定

禁用Firefox相同来源策略

/ 猿问

禁用Firefox相同来源策略

偶然的你 2019-11-25 12:50:32

我正在开发一个本地研究工具,该工具需要关闭Firefox的相同来源策略(就脚本访问而言,我并不真正在乎跨域请求)。

更具体地说,我希望宿主域中的脚本能够访问页面中嵌入的任何iframe中的任意元素,而不管它们的域如何。

我知道以前的问答提到了CORS FF扩展,但这不是我所需要的,因为它只允许CORS,而不能访问脚本。

如果不能轻松完成,我也将感谢您提供的一些见解,这些见解使我指向FF src代码的特定部分,可以对其进行修改以禁用SOP,以便重新编译FF。


查看完整描述

3 回答

?
慕婉清6462132

有一个Firefox扩展程序,它将CORS标头添加到在2015年3月5日发布的最新Firefox(内部版本36.0.1)上运行的所有HTTP响应中。我对其进行了测试,并且它可以在Windows 7和Mavericks上运行。我将指导您逐步进行操作。


1)获取扩展名


您可以从此处(作者内部版本)或从此处 (镜像,可能未更新)下载xpi 。


或从GitHub 下载文件。现在它也在Firefox Marketplace上:在此处下载。在这种情况下,请在单击安装后安装插件,然后可以跳至步骤4。


如果您下载了xpi,则可以跳至步骤3。如果您是从GitHub下载的zip,请转到步骤2。


2)构建xpi


您需要解压缩zip,进入“ cors-everywhere-firefox-addon-master”文件夹,选择所有项目并将其压缩。然后,将创建的zip重命名为* .xpi


注意:如果使用的是OS X gui,它可能会创建一些隐藏文件,因此最好使用命令行。


3)安装XPI


您可以将xpi拖放到firefox,或转到:“ about:addons”,单击右上角的齿轮并选择“ install add on from file”,然后选择.xpi文件。现在,重新启动firefox。


4)开始工作


现在,该扩展默认情况下将无法使用。您需要将扩展程序图标拖动到扩展栏,但是不用担心。有图片!


点击Firefox菜单

点击自定义

1


将CorsE拖到栏上

现在,单击图标,绿色时,CORS标头将添加到任何HTTP响应中

2


5)测试是否正常


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。


可能有解决的办法,但它超出了问题的范围。


查看完整回答
反对 回复 2019-11-25
?
慕圣8478803

我意识到我的旧答案被否决了,因为我没有具体指定如何禁用FF的相同来源策略。在这里,我将给出更详细的答案:


警告:这需要重新编译FF,并且新编译的Firefox版本将无法再次启用 SOP。


查看Mozilla的Firefox的源代码,在src目录中找到nsScriptSecurityManager.cpp。我将使用此处列出的示例作为示例:http : //mxr.mozilla.org/aviarybranch/source/caps/src/nsScriptSecurityManager.cpp


转到函数实现nsScriptSecurityManager :: CheckSameOriginURI,它是截至2016年3月2日的第568行。


使该函数始终返回NS_OK。


这将永久禁用SOP。


@Giacomo的浏览器附加答案对大多数人来说应该是有用的,我已经接受了该答案,但是,由于我的个人研究需要(TL;在此不做解释)还不够,我认为其他研究人员可能需要做些什么我在这里完全杀死了SOP。



查看完整回答
反对 回复 2019-11-25
?
qq_遁去的一_1

该CORS-比比皆是插件对我的作品,直到Firefox的68后,68我需要调整“privacy.file_unique_origin” - >假(通过开放式“about:config中”),以解决“ CORS请求不是HTTP ”新CORS同源规则介绍。


查看完整回答
反对 回复 2019-11-25
  • 3 回答
  • 0 关注
  • 649 浏览
我要回答
慕课专栏
更多

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信