在 Chrome 48+ 中禁用网络安全

2023-11-22

我有一个问题--disable-web-security旗帜。它不适用于 Windows 上的 Chrome 48 和 Chrome 49 beta。

我尝试杀死所有实例,重新启动并首先使用该标志运行 Chrome,也尝试了不同的机器。在测试版中,我可以看到警告弹出窗口(“您正在使用不受支持的标志..”),但 CORS 仍在强制执行。公共版本似乎完全忽略了该标志。

似乎没有任何新闻或人报道这件事,所以这可能是一个本地问题。 将不胜感激帮助或任何相关信息。


更新2021-10-18

从 Chrome 95 开始,在 MacOS 和 Windows 上,--disable-site-isolation-trials仍然是禁用网络安全的必需标志,因此下面看到的 Chrome 命令行参数仍然有效。 (Chrome 并未正式支持某些论点,因为它会警告您。)

要测试您是否已在禁用网络安全的情况下成功启动 Chrome,请运行以下代码段:网络安全测试在这篇文章的底部。

更新2020-04-30

从 Chrome 81 开始,必须通过both --disable-site-isolation-trials和一个非空的配置文件路径--user-data-dir为了--disable-web-security生效:

# MacOS (in Terminal)
open -na Google\ Chrome --args --user-data-dir=/tmp/temporary-chrome-profile-dir --disable-web-security --disable-site-isolation-trials

# Windows (from "Run" dialog [Windows+R] or start menu in Windows 8+)
chrome.exe --user-data-dir=%TMP%\temporary-chrome-profile-dir --disable-web-security --disable-site-isolation-trials

(推测)Chrome 可能需要非空配置文件路径,以减轻在默认配置文件上禁​​用网络安全的情况下启动浏览器的高安全风险。看 --user-data-dir= vs --user-data-dir=/some/path 欲了解更多详情,请参阅下文。

谢谢@Snæbjørn评论中的 Chrome 81 提示。


更新2020-03-06

从 Chrome 80(可能更早)开始,标志的组合--user-data-dir=/tmp/some-path --disable-web-security --disable-site-isolation-trials 不再禁用网络安全.

目前尚不清楚 Chromium 代码库何时回归,但下载了旧版本的 Chromium(以下Chromium 下载页面上的“不那么简单的步骤”)是我发现的唯一解决方法。我最终使用了版本 77.0.3865.0,它可以使用这些标志正确禁用网络安全。


原帖 2019-11-01

在 Chrome 67+ 中,需要通过--disable-site-isolation-trials与参数一起标记--user-data-dir= and --disable-web-security真正禁用网络安全。

在 MacOS 上,完整命令变为:

open -na Google\ Chrome --args --user-data-dir= --disable-web-security --disable-site-isolation-trials

关于--user-data-dir

Per 大卫·艾米的回答,仍然需要指定--user-data-dir=Chrome 尊重--disable-web-security option.

--user-data-dir= vs --user-data-dir=/some/path

虽然经过一条空路--user-data-dir=--disable-web-security,出于安全目的,不建议这样做,因为它使用您的默认 Chrome 配置文件,该配置文件具有电子邮件等的活动登录会话。禁用 Chrome 安全性后,您的活动会话很容易受到其他浏览器内漏洞的攻击。

因此,建议为您的 Chrome 配置文件使用替代目录--user-data-dir=/tmp/chrome-sesh或同等学历。归功于@James B在评论中指出这一点。

Source

此修复是在浏览器测试框架 Cypress 中发现的:https://github.com/cypress-io/cypress/issues/1951

网络安全测试

运行此代码片段以确认此解决方案实际上禁用了 Google Chrome 中的网络安全:

window.addEventListener("DOMContentLoaded", () => {
  const iframe = document.querySelector("iframe");
  iframe.addEventListener("load", () => {
    const canAccessIframeDocument = !!iframe.contentDocument;
    document
      .querySelector(
        canAccessIframeDocument ? ".security-disabled" : ".security-enabled"
      )
      .classList.remove("hidden");
  });
  // To ensure the `load` event always fires, only set iframe src after the
  // event listener is attached.
  iframe.src = "https://google.com";
});
body {
  font-family: sans-serif;
}

.hidden {
  display: none;
}

/* Web security should normally be enabled, so this is colored green, despite
   the objective of this solution to disable it. */
.security-enabled {
  font-weight: bold;
  color: darkgreen;
}

.security-disabled {
  font-weight: bold;
  color: darkred;
}
<h1>Web Security Test</h1>
<p>
  This test attempts to access the inner contents of a cross-origin iframe,
  which is normally disallowed.
</p>
<p class="security-enabled hidden">
  Web security is enabled. The cross-origin iframe document could not be
  accessed.
</p>
<p class="security-disabled hidden">
  Web security is disabled. The cross-origin iframe document was
  successfully accessed.
</p>
<iframe class="hidden">
  Iframes are not supported.
</iframe>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Chrome 48+ 中禁用网络安全 的相关文章

随机推荐