当前位置: 首页 > 知识库问答 >
问题:

禁用火狐同源策略

东郭思远
2023-03-14

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

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

我知道以前的问题

如果这不能很容易地完成,我也会很感激任何见解,指出我的FF src代码的具体部分,我可以修改禁用SOP,以便我可以重新编译FF。

共有3个答案

齐承运
2023-03-14

我意识到我以前的答案被否决了,因为我没有具体说明如何禁用FF的同源策略。在这里,我将给出更详细的回答:

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

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

转到函数实现nsScriptSecurityManager::ChelkSameOriURI,这是日期03/02/2016的第568行。

使该函数始终返回NS\u OK。

这将永久禁用SOP。

@Giacomo的浏览器插件答案对大多数人来说应该是有用的,我已经接受了这个答案,但是,出于我个人的研究需要(TL;这里不解释),这是不够的,我想其他研究人员可能需要像我在这里做的那样完全杀死SOP。

荆学民
2023-03-14
about:config -> security.fileuri.strict_origin_policy -> false
赫连卓
2023-03-14

在2015年3月5日发布的最新Firefox(build 36.0.1)上,有一个Firefox扩展将CORS头添加到任何HTTP响应中。我测试了它,它在Windows7和Mavericks上都能工作。我将指导您完成使其工作的步骤。

1) 获得分机

您可以从这里下载xpi(作者构建),也可以从这里下载xpi(镜像,可能不会更新)。

或者从GitHub下载文件。现在它也出现在Firefox Marketplace上:在这里下载。在这种情况下,单击install(安装)后将安装插件,您可以跳到步骤4。

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

2) 构建xpi

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

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

3) 安装xpi

您可以将xpi拖放到firefox,或者转到:“关于:插件”,单击右上角的cog并选择“从文件安装插件”,然后选择您。xpi文件。现在,重新启动firefox。

4)让它工作

现在,默认情况下扩展无法工作。您需要将扩展图标拖到扩展栏上,但不要担心。有照片!

  • 点击火狐菜单
  • 点击自定义
  • 将CorsE拖到工具栏上
  • 现在,单击图标,当它为绿色时,CORS头将添加到任何HTTP响应中

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。

也许有办法解决这个问题,但这已经超出了问题的范围。

 类似资料:
  • 我正在开发一个phonegap/cordova应用程序,它不受我关心的站点的同源策略的约束。我使用chrome浏览器进行快速开发,如果它受同源策略的约束,我就无法做到这一点。关于如何完全禁用跨原产地政策,有一个三年前的好答案。但是,在完全禁用网络安全的情况下打开浏览器似乎是一种灾难。 由于anser已经3年了,我希望现在有一种方法可以在每个URL的基础上禁用相同来源的策略。要么本地主机上的所有网页

  • 我目前正在为我们的软件创建一个演示应用程序,它基本上是一个网站,只是在一个Delphi应用程序内交付,该应用程序与TWeb浏览器一起工作,以防止用户做不必要的事情。我已经通过tubeplayer-plugin嵌入了一些youtube视频,正因为如此,我得到了与“同源政策”相关的错误对话框。 在IE中,通常有一个选项可以禁用此策略,对于TWebbrowser有什么方法可以做到这一点吗?(我指的选项请

  • 有没有办法禁用Android Chrome上的同源策略,我搜索了其他帖子,没有找到任何关于Android版本的答案。

  • Chrome允许我们禁用同源策略,因此我们可以测试跨源请求。我想知道在IE中是否有可能做同样的事情

  • 问题内容: 有什么方法可以在Google的Chrome浏览器上禁用同源策略? 问题答案: 关闭chrome(或chrome),然后重新启动参数。我刚刚对此进行了测试,并验证了我是否可以访问src=“ http://google.com”嵌入iframe的内容,该页面嵌入在“本地主机”提供的页面中(在Chrome 5 /Ubuntu下进行了测试)。对我来说,确切的命令是: 注意:在运行命令之前杀死所

  • 问题内容: 有什么方法可以在Google的Chrome浏览器上禁用同源策略? 问题答案: 关闭chrome(或chrome),然后重新启动–disable-web-security参数。我刚刚对此进行了测试,并验证了我是否可以访问src =“http://google.com”嵌入iframe的内容,该页面嵌入在“本地主机”提供的页面中(在Chrome 5 / Ubuntu下测试)。对我来说,确切