在Chrome 48+中禁用网络安全


86

我有一个问题 --disable-web-security标志。Windows无法在Chrome 48和Chrome 49 beta中使用它。

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

似乎没有任何新闻或人们对此进行报道,因此这可能是本地问题。将非常感谢您的帮助或任何相关信息。


负责任的开发人员不会禁用网络安全stackoverflow.com/a/33801287/128511
gman

Answers:


38

更新2020-04-30

如铬81的,它是强制性的,以通过两个 --disable-site-isolation-trials通孔和非空的配置文件路径--user-data-dir,以便--disable-web-security生效:

# MacOS
open -na Google\ Chrome --args --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=和参数之间传递标志--disable-web-security真正禁用网络安全。

在MacOS上,完整命令变为:

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

关于 --user-data-dir

根据David Amey的回答,仍然有必要指定--user-data-dir=Chrome遵守该--disable-web-security选项。

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

虽然通过--user-data-dir=--disable-web-security,但出于安全目的,建议不要使用它,因为它会使用默认的Chrome配置文件(该配置文件具有有效的登录会话来发送电子邮件等)。禁用Chrome安全性后,您的有效会话很容易受到其他内部攻击的侵害。浏览器漏洞。

因此,建议为您的Chrome配置文件使用一个或多个替代目录--user-data-dir=/tmp/chrome-sesh。感谢@詹姆斯乙在评论指出了这一点。

资源

此修复程序已在赛普拉斯的浏览器测试框架中失效:https : //github.com/cypress-io/cypress/issues/1951


3
仅仅因为不需要一个值就可以使它起作用,并不意味着它是一个好主意。运行您提供的命令将打开默认的Chrome配置文件,并建立与您的电子邮件/银行/其他帐户的会话,但是没有网络安全功能可防止这些帐户受到恶意网站的破坏。
James B

好点@JamesB。我已经将您的见解纳入了答案。
mxxk

在装有Chrome 81的Mac上,此命令有效:open -na Google\ Chrome --args --disable-web-security --disable-gpu --user-data-dir=~/chromeTemp我收到有关该~/chromeTemp目录的警报,但有效
David

1
卡在Enterprise Chrome 79上,我可以确认安全标记仍然有效。
鲍里斯

1
我可以证实,--user-data-dir=C:\tmp\some-path --disable-web-security --disable-site-isolation-trials在Windows上的Chrome 81工作10
Snæbjørn

87

我看到了同样的事情。一个快速的谷歌发现了这个问题,并在铬论坛上发现了一个错误。似乎--user-data-dir现在需要该标志。编辑以添加用户数据目录指南


4
谢谢,它有效!空--user-data-dir在beta中不再起作用。应该为用户数据提供一个值,以使两个标志都起作用。
Anatoly Sazanov

谢谢你的回答。我仍然遇到麻烦,因为我之前从未实现过,所以如果在阅读完以上内容后仍然感到困惑,请在下面查看我的答案。
Dan Zuzevich '16

60

苹果系统:

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

UPD:添加=--user-data-dir因为较新的chrome版本需要它才能正常工作


2
由于此问题已解决,因此您需要指定一个user-data-dir,以便: open -a Google\ Chrome --args --disable-web-security --user-data-dir=/some/dir
David Amey,2016年

9
适用于Mac用户的Chrome版本50+。首先关闭所有打开的镶边,然后运行以下命令 open -a Google\ Chrome --args --disable-web-security --user-data-dir=""
Velu S Gautam'5

注意:应该出现标语,指出“网络安全已禁用”。如果未显示此横幅,则需要确保在运行命令之前强制退出chrome(右键单击快速启动图标->退出->重新运行命令)。
Z. Bagley,

请注意!从Chrome版本80--user-data-dir=""开始,不再使用--disable-web-security。您需要摆出一条真实的路,例如--user-data-dir="/tmp/temppropfile"
keul

26

在OS X上,要打开新的Chrome窗口-不必先关闭已经打开的窗口-传递附加的-n标志。确保为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

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


1
谢谢!Google扩展程序,“允许控制允许来源”:不适用于我,但是可以!
user2326737

23

所选择的答案是好的,但是对于那些仍在为自己的话题而挣扎的人(您第一次处理此问题),以下对我有用。

我在桌面上创建了一个指向Chrome的新快捷方式,右键单击它,并将“目标”字段设置为以下内容,

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

该目录可以是您想要的任何目录,我决定在C:目录中创建一个名为chrome dev的空文件夹。与您在计算机上安装chrome的位置无关。这只是绒毛类型的东西。

该链接还为其他操作系统提供了明确的指导。如何在Chrome中禁用网络安全


15

版本49.0.2623.75(64位)不再处于beta版本。

解决CORS问题的命令是 google-chrome-stable --disable-web-security --user-data-dir


1
我每次都必须这样做吗?
Compaq LE2202x

10

安装此Chrome插件以在Chrome中禁用网络安全性::

“ Allow-Control-Allow-Origin:*” 链接在这里,或者如果需要,您可以在插件上方使用google。

使用此插件启用和禁用安全性非常容易。


1
链接已过期
AndriusNaruševičius19年

3

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

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

上面的工作。谢谢


2

对于Mac,使用Safari是进行本地开发的一个不错的替代选择,并且该功能已内置在浏览器中(因此,无需添加浏览器扩展名或使用bash命令启动Chrome,例如[open -a Google \ Chrome --args --disable -web-security --user-data-dir =“”]。

要使用Safari(v11 +)禁用跨源限制,请执行以下操作:从菜单中单击“开发>禁用跨源限制”。

这不需要重新启动浏览器,并且由于它具有切换功能,您可以轻松切换到安全模式。


2

在终端中输入以下内容:

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

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

1

截至本答案发布之日(2020年3月),有一个用于chrome的插件称为CORS unblock,可让您跳过该浏览器策略。“相同来源策略”是浏览器的重要安全功能。请仅出于开发或测试目的安装此插件。不要在最终客户端浏览器中推广其安装,因为这会危及用户的安全,因此chrome社区将被迫从商店中删除此插件。


1

在Chorme v81中,参数--user-data-dir=需要一个实际参数,而在过去则不需要。这样的事情对我来说很好

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.