在 Chrome48 + 中禁用网络安全

我对 --disable-web-security标志有意见。它不能在 WindowsChrome48和 Chrome49测试版中运行。

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

There seems to be no news or people reports about that, so it might be a local issue. 将感谢帮助或任何相关信息。

260544 次浏览

我也看到了。一个快速谷歌发现这个问题和一个 bug on the chromium forums。似乎现在需要 --user-data-dir标志。 编辑添加 < a href = “ https://www.chromium.org/user-experience/user-data-directory”> user-data-dir guide

版本49.0.2623.75(64位)不再处于 beta 测试阶段。

修复 CORS 问题的命令是 Google-chrome-Stability —— Disable-web-security —— user-data-dir

Mac OS:

open -a Google\ Chrome --args --disable-web-security --user-data-dir=

UPD: 将 =添加到 --user-data-dir,因为较新的铬版本需要它才能工作

我觉得挺好的。 试试用这个. . 它会帮助你. 。

c:\Program Files\Google\Chrome\Application>chrome.exe --disable-web-security --user-data-dir="D:\chrome"

Install This Chrome-plugin for Disable-web-security in Chrome::

“允许-控制-允许-来源: *” 链接在这里 或者你可以谷歌以上插件,如果你想要的。

使用这个插件很容易启用和禁用安全性。

所选择的答案是好的,但是对于那些还在为他们所谈论的(你第一次处理这个问题)而挣扎的人来说,下面的方法对我很有效。

我在桌面上创建了一个新的 Chrome 快捷方式,右键单击它,然后将“ Target”字段设置为如下,

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="c:/chromedev"

该目录可以是任何你想要的,我决定在我的 C: 目录中创建一个名为 chrome dev 的空文件夹。它没有任何做铬是安装在您的计算机上。就是个毛茸茸的东西。

这个链接也有明确的方向,其他操作系统

对于 Mac 用户的 Chrome 50 + 版本,首先关闭所有打开的 Chrome,然后运行以下命令

open -a Google\ Chrome --args --disable-web-security --user-data-dir=""

以上方法可行,谢谢

在 OS X 上,打开一个新的 Chrome 窗口——不必先关闭已经打开的窗口——通过额外的 - 是的标志。确保为 data-dir 指定空字符串(对于较新版本的 Chrome,比如 v50 something + ,是必需的)。

open -na /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=""

我发现在 Mac OS X Sierra 上使用 Chrome 60 + ,上面的命令不再有效,但是稍微修改一下就可以了:

open -n -a /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --user-data-dir="/tmp/chrome_dev_sess_1" --disable-web-security

数据目录路径很重要。即使在发出命令时位于主目录中,也不能简单地引用本地目录。它必须是一条绝对的道路。

对于 Mac 来说,使用 Safari 是本地开发的一个不错的选择,而且浏览器内置了这个功能(所以不需要添加浏览器扩展或者使用 bash 命令启动 Chrome,比如[ open-a Google Chrome —— args —— disable-web-security —— user-data-dir = “”]。

使用 Safari (v11 +)禁用跨产地限制: 从菜单单击“开发 > 禁用跨产地限制”。

This does not require relaunching the browser and since its a toggle you can easily switch to secure mode.

在终端机上写着:

cd C:\Program Files (x86)\Google\Chrome\Application


chrome.exe --disable-web-security --user-data-dir="c:/chromedev"

更新2021-10-18

至于 Chrome 95,在 MacOS 和 Windows 上,--disable-site-isolation-trials仍然是禁用网络安全所必需的标志,所以下面看到的 Chrome 的命令行参数仍然有效。(Chrome 并不正式支持其中一些观点,因为它会警告你。)

为了测试你是否已经成功地启动了没有网络安全功能的 Chrome 浏览器,运行本文底部的 网络安全测试代码片段。

Update 2020-04-30

在 Chrome 81中,必须通过 都有 --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 很可能需要一个非空的配置文件路径,以减轻启动浏览器时在默认配置文件上禁用网络安全的高安全风险。有关详情,请参阅 ABC0 vs --user-data-dir=/some/path < em > 。

感谢 @ Sn æbjørn在评论中提供的 Chrome 81技巧。


更新2020-03-06

至于 Chrome80(可能更早) ,标志 --user-data-dir=/tmp/some-path --disable-web-security --disable-site-isolation-trials不再禁用网络安全的组合。

现在还不清楚 Chromium 代码库是什么时候退化的,但是下载一个旧版本的 Chromium (在 Chromium 下载页面上的“不那么容易的步骤”之后)是我找到的唯一解决办法。我最终使用的是 Version 77.0.3865.0,它通过这些标志正确地禁用了 web 安全性。


原帖2019-11-01

在 Chrome67 + 中,需要将 --disable-site-isolation-trials标志与参数 --user-data-dir=--disable-web-security一起传递,才能真正禁用网络安全。

在 MacOS 上,完整的命令是:

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

关于 --user-data-dir

根据 David Amey 的回答,仍然需要为 Chrome 指定 --user-data-dir=以尊重 --disable-web-security选项。

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

虽然通过 --user-data-dir=传递一个空路径可以与 --disable-web-security一起工作,但出于安全目的,它不推荐使用默认的 Chrome 配置文件,该配置文件有活跃的电子邮件登录会话等。由于 Chrome 安全性被禁用,您的活动会话因此容易受到额外的浏览器内漏洞的攻击。

因此,我们建议您使用 --user-data-dir=/tmp/chrome-sesh或其他类似的浏览器配置文件的替代目录。感谢 @ James B在评论中指出这一点。

来源

这个修复是在浏览器测试框架 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>

截至这个答案的日期(2020年3月) ,有一个名为 CORS 解锁的 Chrome 插件,允许你跳过浏览器策略。“同源策略”是浏览器的一个重要安全特性。请只安装此插件用于开发或测试目的。不要促进其安装在最终客户端浏览器,因为你妥协的安全性和铬社区将被迫从商店删除这个插件。

在 ChormeV81中,参数 --user-data-dir=需要一个实际的参数,而在过去则不需要。 我觉得这样挺好的

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="\tmp\chrome_test"

为了 MacOSX

open -n -a /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --user-data-dir="/tmp/chrome_dev_sess_1" --disable-web-security

For Windows 10+

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --disable-gpu --user-data-dir=~/chromeTemp