【问题标题】:Disable cross domain web security in Firefox在 Firefox 中禁用跨域网络安全
【发布时间】:2013-07-16 17:20:20
【问题描述】:

在 Firefox 中,我如何在 Chrome 中执行相当于 --disable-web-security 的操作。这已经发布了很多,但从来没有一个真正的答案。大多数是附加组件的链接(其中一些在最新的 Firefox 中不起作用或根本不起作用)和“您只需要在服务器上启用支持”。

  1. 这是临时测试。我知道安全隐患。
  2. 我无法在服务器上打开 CORS,尤其是我永远无法允许 localhost 或类似的。
  3. 标志、设置或其他东西会比插件好得多。我也试过:http://www-jo.se/f.pfleger/forcecors,但肯定有问题,因为我的请求返回时完全为空,但 Chrome 中的相同请求返回正常。

同样,这仅用于在推送到 prod 之前进行测试,然后将在允许的域上。

【问题讨论】:

标签: security firefox cross-domain cors


【解决方案1】:

几乎所有你看到的地方,人们都会提到 about:config 和 security.fileuri.strict_origin_policy。有时还有 network.http.refere.XOriginPolicy。

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

This comment 表示 Firefox 中没有内置方法来执行此操作(截至 2014 年 2 月 8 日)。

【讨论】:

  • security.fileuri.strict_origin_policy 在需要通过 AJAX 将一个本地文件的内容获取到另一个本地文件并且第一个文件与第二个文件不在同一个文件夹(或该文件夹的子文件夹)中时提供帮助。
  • 我认为将“network.http.referer.XOriginPolicy”设置为 1 对我有用(Firefox 测试版)。我不确定这样放置有多糟糕(不安全)。
【解决方案2】:

来自this 的回答我知道CORS Everywhere Firefox 扩展,它对我有用。它创建 MITM 代理拦截标头以禁用 CORS。 您可以在addons.mozilla.orghere 找到扩展程序。

【讨论】:

  • firefox 不允许工程师选择禁用 CORS 进行开发,但生活,呃,总有办法
  • 2021 年仍为我工作,FF96。
【解决方案3】:

查看我的插件,它适用于最新的 Firefox 版本,具有漂亮的 UI 并支持 JS 正则表达式:https://addons.mozilla.org/en-US/firefox/addon/cross-domain-cors

更新:我只是为这个 https://chrome.google.com/webstore/detail/cross-domain-cors/mjhpgnbimicffchbodmgfnemoghjakai 添加了 Chrome 扩展程序

【讨论】:

  • 它似乎不适用于 Firefox 55.0.3。不过 UI 不错。
  • FWIW,CORS-Everywhere Extension 也在做类似的事情。
  • 刚刚修复了这个错误,现在又可以正常工作了。
  • 为我工作!我允许本地主机使用 CORS,现在我可以在本地测试我的 Web 应用程序和 API,而无需设置复杂的服务器。谢谢!
  • 非常方便,如果你能添加对子域的支持,谢谢你?。
【解决方案4】:

你指的Chrome设置是禁用同源策略。

这在此线程中也有所涉及: Disable firefox same origin policy

about:config -> security.fileuri.strict_origin_policy -> false

【讨论】:

  • 将此设置设置为 false 没有任何效果;请求仍然停留在 OPTIONS
  • 是的,这对 cors 没有影响,没有任何作用
  • 这在 Firefox 最新版上没有任何作用
  • 这只是改变了 file:// URI 策略,而不是需要的那个
  • 这个答案解决了我在本地开发环境中因跨域限制而遇到的字体很棒的下载失败问题。
【解决方案5】:

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

您甚至可以通过推荐人(网站)对其进行配置。

【讨论】:

    【解决方案6】:

    我找不到与 --disable-web-security 等效的 Firefox 选项或为我执行此操作的插件。在一些无法修改 Web 服务器的测试场景中,我真的需要它。 有什么帮助是使用 Fiddler 自动修改 Web 响应,以便它们具有正确的标头,并且 CORS 不再是问题。

    步骤如下:

    1. 打开提琴手。

    2. 如果在 https 上,请转到菜单工具 -> 选项 -> Https 并勾选 Capture & Decrypt https 选项

    3. 转到菜单规则 -> 自定义规则。修改 OnBeforeResponseFunction 使其如下所示,然后保存:

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

      这将使每个 Web 响应都具有 Access-Control-Allow-Origin: * 标头。

    4. 这仍然不起作用,因为 OPTIONS 预检将通过并导致请求在我们的上述规则有机会修改标头之前被阻止。 所以要解决这个问题,在提琴手主窗口的右侧有一个自动回复选项卡。 添加新规则和响应: METHOD:OPTIONS https://yoursite.com/ 自动响应:*CORSPreflightAllow 并勾选框:“启用规则”和“不匹配的请求传递”。

    参考下图:

    【讨论】:

      【解决方案7】:

      虽然问题提到了 Chrome 和 Firefox,但还有其他软件没有跨域安全性。我提到它是为了那些忽略此类软件存在的人。

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

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

      查看我的其他评论:Userscript to bypass same-origin policy for accessing nested iframes

      【讨论】:

        【解决方案8】:

        对于在使用 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'
                    ],
                  }
                }
              }
            },

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-08-28
          • 2015-11-07
          • 2014-06-06
          • 2016-06-21
          • 1970-01-01
          • 1970-01-01
          • 2014-10-05
          • 2021-11-03
          相关资源
          最近更新 更多