在 Firefox 中禁用跨域网络安全

在 Firefox 中,我如何在 Chrome 中做相当于 --disable-web-security的事情。这已经被贴了很多,但从来没有一个真正的答案。大多数是附加组件的链接(其中一些在最新的 Firefox 中无法工作,或者根本不能工作)和“你只需要在服务器上启用支持”。

  1. 这是临时测试,我知道安全隐患。
  2. 我不能在服务器上打开 CORS,而且我尤其不能允许本地主机或类似的服务器。
  3. 一个标志,或设置,或其他东西会比一个插件好得多。我也试过: http://www-jo.se/f.pfleger/forcecors,但是肯定有什么地方出错了,因为我的请求返回时完全是空的,但是在 Chrome 中同样的请求返回时没有问题。

同样,这只是为了在触发之前进行测试,然后,将在一个允许的域上。

302335 次浏览

您引用的 Chrome 设置是禁用相同的原始策略。

这条帖子也提到了这一点: 禁用 Firefox 同源策略

About: config-> security.fileuri.stern _ source _ policy-> false

几乎在任何地方,人们都会引用 about: config 和 security.fileuri.strong _ source _ policy,有时还会引用 network.http.Refere.XOriginPolicy。

对我来说,这些似乎都没有任何效果。

这条注释 暗示 Firefox 中没有内置的方法来做到这一点(从2/8/14开始)。

这个的答案我已经知道了 CORS Everywhere Firefox 扩展,它适合我。它创建 MITM 代理拦截头以禁用 CORS。 您可以在 Addons.mozilla.org给你找到分机。

2016年9月: https://github.com/fredericlb/Force-CORS/releases开始禁用 CORS 的最佳 Firefox 插件

你甚至可以通过引用者(网站)来配置它。

看看我的插件,它可以和最新的火狐版本一起工作,有漂亮的用户界面和支持 JS regex: < a href = “ https://addons.mozilla.org/en-US/Firefox/addon/cross-domain-cors”rel = “ norefrer”> https://addons.mozilla.org/en-us/Firefox/addon/cross-domain-cors

更新: 我刚刚为这个插件添加了一个 Chrome 扩展 https://Chrome.google.com/webstore/detail/cross-domain-cors/mjhpgnbimicffchbodmgfnemoghjakai

enter image description here

当问题提到 Chrome 和 Firefox 时,还有其他没有跨域安全的软件。对于那些忽视这类软件存在的人,我会提到它。

例如,PhantomJS 是一个用于浏览器自动化的引擎,它支持跨域安全停用。

phantomjs.exe --web-security=no script.js

请看我的另一个评论: 用户脚本绕过访问嵌套 iframe 的同源策略

对于在使用 Nightwatch.js (1.3.4)时发现这个问题的人,配置文件中有一个 acceptInsecureCerts: true设置:

firefox: {
desiredCapabilities: {
browserName: 'firefox',
alwaysMatch: {
// Enable this if you encounter unexpected SSL certificate errors in Firefox
acceptInsecureCerts: true,
'moz:firefoxOptions': {
args: [
// '-headless',
// '-verbose'
],
}
}
}
},

我还没有找到一个 Firefox 的选项,相当于禁用网络安全或一个插件,为我这样做。我真的需要它的一些测试场景,修改网络服务器是不可能的。 真正有帮助的是使用 Fiddler 自动修改 Web 响应,以便它们拥有正确的标题,CORS 不再是一个问题。

步骤如下:

  1. 打开小提琴。

  2. 如果在 Https 上进入菜单工具-> 选项-> Https 并勾选捕获和解密 Https 选项

  3. 转到菜单规则-> 自定义规则。修改 OnBeforeResponse 函数,使其看起来像下面这样,然后保存:

     static function OnBeforeResponse(oSession: Session) {
    //....
    oSession.oResponse.headers.Remove("Access-Control-Allow-Origin");
    oSession.oResponse.headers.Add("Access-Control-Allow-Origin", "*");
    //...
    }
    

    这将使每个网络响应都有访问控制-允许-起源: * 头。

  4. 这仍然不会工作,因为 OPTION 预飞行将通过并导致请求阻塞之前,我们的上述规则得到机会修改标题。 为了解决这个问题,在小提琴手主窗口的右侧有一个 AutoResponder 选项卡。 增加新的规则和回应: 方法: 选项 https://yoursite.com/ 自动响应: 然后勾选“启用规则”和“无匹配请求通过”。

见下图参考:

enter image description here

截至2022年6月,MozillaFirefox 允许您 天生的更改 CORS 配置。不需要额外的插件。根据 Mozilla 文档,您可以通过更改键 content.cors.disable的值来更改 CORS 设置

要这样做,首先进入浏览器,在地址栏中键入 about:config,如screen shot.

单击“接受风险”并继续,因为您在堆栈溢出页面上,我们假设您已经意识到正在承担的风险。

您将看到一个带有用户变量的页面shown below.

您不必键入 truefalse值,只需在屏幕最右边按一下切换按钮,它就会改变值。