在Chrome中禁用同一来源政策

这篇博客讨论了在Google Chrome浏览器上禁用同源策略的方法,特别是针对Linux和Windows用户的解决方案。警告了禁用同源策略的安全风险,并推荐了运行本地服务器和使用CORS Toggle等扩展作为替代方案。同时,提供了多个命令行参数和快捷方式创建教程,以在不关闭现有Chrome实例的情况下,安全地启用跨域请求。
摘要由CSDN通过智能技术生成

有什么方法可以在Google的Chrome浏览器上禁用同源策略


#1楼

如果您在Linux上使用Google Chrome,则可以使用以下命令。

google-chrome  --disable-web-security

#2楼

对于Windows ...在桌面上创建Chrome快捷方式。
右键单击>属性>快捷方式
编辑“目标”路径:

"C:\Program Files\Google\Chrome\Application\chrome.exe" --args --disable-web-security

(将“ C:.... \\ chrome.exe”更改为您的Chrome所在的位置)。

etvoilà:)


#3楼

对于Windows用户:

我认为这里接受的解决方案的问题是,如果您已经打开Chrome并尝试运行它,它将无法正常工作。

但是,在研究此问题时,我遇到了有关“超级用户”的帖子, 是否可以同时运行带有和不带有Web安全功能的Chrome?

基本上,通过运行以下命令(或使用该命令创建快捷方式并通过该命令打开Chrome)

chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security

您可以在保持其他“安全”浏览器实例打开并正常运行的同时,打开一个新的“不安全” Chrome实例。 重要提示 :每次第二次打开窗口时,都删除/清除C:/Chrome dev session文件夹--disable-web-security无法正常工作。 因此,您无法保存所做的更改,然后使用--disable-web-security其作为第二个不安全的Chrome实例再次打开。


#4楼

不要这样! 您正在打开帐户进行攻击 。 完成此操作后,任何第三方网站都可以开始向其他网站(您已登录的网站)发出请求。

而是运行本地服务器。 就像打开外壳/终端/命令行并键入一样简单

cd path/to/files
python -m SimpleHTTPServer

然后将浏览器指向

http://localhost:8000

如果发现它太慢,请考虑此解决方案

更新资料

对此答案不满意的人也应该在这里投票,对这个答案也要一致。 不知道为什么我的答案如此之低,而这里的相同答案是投票最高的答案。

正在向攻击敞开大门。 现在,您通过npm远程或本地包含在站点中的每个第三方脚本都可以上载数据或窃取凭据。 您正在做不需要做的事情。 建议的解决方案并不难,只需30秒,就不会让您遭受公开攻击。 当更好的事情如此简单时,为什么选择让自己变得脆弱?

告诉人们禁用安全性就像告诉您的朋友不要打开前门和/或门垫下的钥匙一样。 当然,赔率可能很低,但是如果他们确实被盗了,如果没有被迫入境的证明,他们可能很难领取保险。 同样,如果禁用安全性 ,则只不过是在禁用 安全性 。 当您可以简单地在不禁用安全性的情况下解决问题时,这样做是不负责任的。 如果您不能因为禁用安全而被某些公司解雇,我会感到惊讶。


#5楼

在Windows PC上,使用旧版的Chrome,该命令将对所有人有效。 我将Chrome降级为26版本,并且可以正常工作。


#6楼

编辑3:似乎扩展名不再存在...这些天通常是为了解决CORS,我用单独的目录设置了另一个版本的Chrome,或者我将Firefox与https://addons.mozilla.org/zh-CN/ firefox / addon / cors-everywhere /代替。

编辑2:我不能再使它始终如一地工作。

编辑:我只是在另一天尝试使用另一天,它停止工作。 卸载并重新安装扩展后,已对其进行了修复(以重置默认值)。

原始答案:

我不想重新启动Chrome并禁用我的网络安全性(因为我在开发时正在浏览)并偶然发现了该Chrome扩展程序。

Chrome网上应用店允许-允许-允许来源:*
(https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=zh-CN)

基本上,这是一个小拨动开关,用于启用和禁用Allow-Access-Origin-Control检查。 对于我的工作非常适合我。


#7楼

该Chrome插件对我有用Allow-Control-Allow-Origin:*-Chrome网上应用店


#8楼

似乎以上解决方案均未真正起作用。 最新的chrome版本不再支持--disable-web-security

Allow-Control-Allow-Origin:*-chrome扩展程序部分解决了该问题。 仅当您的请求使用GET方法且没有自定义HTTP标头时,它才起作用。 否则,chrome将发送OPTIONS HTTP请求作为飞行前请求。 如果服务器不支持CORS,它将以404 HTTP状态代码响应。 插件无法修改响应HTTP状态代码。 因此chrome将拒绝此请求。 chrome插件无法根据当前的chrome扩展API修改响应HTTP状态代码。 而且,您也无法对XHR发起的请求进行重定向。

不确定Chrome为什么使开发人员的生活如此艰难。 它阻止了所有可能的方式来禁用XSS安全检查,即使是出于开发目的,这也是完全不必要的。

经过几天的奋斗和研究,一种解决方案对我来说是完美的:使用corsproxy 。 您在此处有两个选择:1.使用[ https://cors-anywhere.herokuapp.com/] 2.在本地框中安装corsproxy: npm install -g corsproxy

[2018年6月23日更新]最近我正在开发一个SPA应用程序,需要再次使用corsproxy。 但是似乎github上的corsproxy都不能满足我的要求。

  • 出于安全原因,需要它在防火墙内运行。 所以我不能使用https://cors-anywhere.herokuapp.com/
  • 它必须支持https,因为chrome会阻止https页面中的非https ajax请求。
  • 我需要在nodejs上运行。 我不想维护另一种语言堆栈。

因此,我决定使用nodejs开发自己的corsproxy版本。 实际上非常简单。 我已将其作为要点在github上发布。 这是源代码要点: https : //gist.github.com/jianwu/8e76eaec95d9b1300c59596fbfc21b10

  • 它在纯Node.js代码中,没有任何其他依赖
  • 您可以在http和https模式下运行(通过在命令行中传递https端口号),要运行https,您需要生成cert和key并将它们放在webroot目录中。
  • 它还用作静态文件服务器
  • 它还支持飞行前OPTION请求。

要启动CORSProxy服务器(http端口8080):节点static_server.js 8080

访问代理: http:// host:8080 / http://www.somesite.com


#9楼

您可以简单地使用此Chrome扩展名Allow-Control-Allow-Origin

只需单击扩展图标即可根据需要打开或关闭启用跨资源共享


#10楼

对于Windows:

(使用Windows 8.1,Chrome 44.0

首先,关闭google chrome。

然后,打开命令提示符,然后转到“ chrome.exe”所在的文件夹。

( for me: 'chrome.exe' is here "C:\Program Files (x86)\Google\Chrome\Application".

所以我输入: cd C:\\Program Files (x86)\\Google\\Chrome\\Application

现在输入: chrome.exe --disable-web-security

chrome的新窗口将打开。


#11楼

关闭chrome(或Chrome),然后使用--disable-web-security参数重新启动。 我刚刚对此进行了测试,并验证了是否可以访问src =“ http://google.com”嵌入iframe的内容,该页面嵌入在“本地主机”提供的页面中(在Chrome 5 / Ubuntu下进行了测试)。 对我来说,确切的命令是:

注意:在运行命令之前杀死所有chrome实例

chromium-browser --disable-web-security --user-data-dir="[some directory here]"

浏览器在第一次打开时会警告您“您正在使用不受支持的命令行”,您可以将其忽略。

从铬源:

// Don't enforce the same-origin policy. (Used by people testing their sites.)
const wchar_t kDisableWebSecurity[] = L"disable-web-security";

在Chrome 48之前,您可以使用:

chromium-browser --disable-web-security

#12楼

在Windows 10上,以下操作将起作用。

<<path>>\chrome.exe --allow-file-access-from-files --allow-file-access --allow-cross-origin-auth-prompt

#13楼

我发现最好的方法是在Windows桌面上复制Chrome或Chrome Canary快捷方式。 将该快捷方式重命名为“ NO CORS”,然后编辑该快捷方式的属性。

在目标中,将--disable-web-security --user-data-dir="D:/Chrome"到目标路径的末尾。

您的目标应如下所示:

更新:添加了新标志。

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

在此处输入图片说明


#14楼

根据Ola Karlsson的回答,确实最好的方法是在另一个会话中打开不安全的Chrome。 这样,您无需担心关闭所有当前打开的标签页,也可以继续使用原始的Chrome会话安全地浏览网页。

这些批处理文件应只在Windows上为您工作。

将其放在Chrome_CORS.bat文件中以方便使用

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

这是Chrome Canary专用的。 金丝雀_CORS.bat

start "" "c:\Users\%USERNAME%\AppData\Local\Google\Chrome SxS\Application\chrome.exe" --user-data-dir="c:/_canary_dev" --disable-web-security

#15楼

chromium-browser --disable-web-security --user-data-dir=~/ChromeUserData/

#16楼

对于Mac用户:

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

在Chrome 48之前,您可以使用:

open -a "Google Chrome" --args --disable-web-security

#17楼

有一个名为CORS Toggle的Chrome扩展程序。

点击此处访问它并将其添加到Chrome

添加后,将其切换到打开位置以允许跨域请求。


#18楼

对于Windows

  1. 打开开始菜单
  2. 键入Windows + R或打开“运行”
  3. 执行以下命令:

     chrome.exe --user-data-dir="C://Chrome dev session" --disable-web-security 

对于Mac

  1. 前往终端
  2. 执行以下命令:

     open /Applications/Google\\ Chrome.app --args --user-data-dir="/var/tmp/Chrome dev session" --disable-web-security 

新的停用了网络安全功能的Chrome浏览器应打开,并显示以下消息:

在此处输入图片说明


#19楼

您可以使用这个名为“ Allow-Control-Allow-Origin:*”的chrome插件。 在这里检查:*

Chrome扩展


#20楼

仅适用于MAC用户

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

#21楼

对于使用Chrome版本60.0.3112.78(解决方案经过测试并正常工作的日期)且至少直到今天的19.01.2019(版本71.0.3578.98)的 Windows用户。 你不需要关闭任何镀铬的实例。

  1. 在桌面上创建快捷方式
  2. 用鼠标右键单击快捷方式,然后单击属性
  3. 编辑目标属性
  4. 将其设置为“ C:\\ Program Files(x86)\\ Google \\ Chrome \\ Application \\ chrome.exe” --disable-web-security --user-data-dir =“ C:/ ChromeDevSession”
  5. 启动chrome并忽略表示不支持--disable-web-security的消息!

请勿使用此特殊的浏览器实例进行浏览,因为您可能对此感到头疼!


#22楼

在Mac终端上尝试此命令-

open -n -a "Google Chrome" --args --user-data-dir=/tmp/temp_chrome_user_data_dir http://localhost:8100/ --disable-web-security 

它会打开另一个具有禁用安全性的chrome实例,并且不再存在CORS问题。 另外,您不再需要关闭其他Chrome实例。 将localhost URL更改为您的URL。


#23楼

有时,我将其用于将本地主机前端站点发布到本地主机后端API(例如,对旧的.NET API进行响应)。 我在Windows 10桌面上创建了一个单独的快捷方式,因此它永远不会用于正常浏览,而仅用于本地调试。 我做了以下事情:

  1. 右键点击桌面,添加新的快捷方式
  2. 将目标添加为"[PATH_TO_CHROME]\\chrome.exe" --disable-web-security
  3. 单击确定。

您将收到关于此浏览器加载的警告,它不安全,请小心浏览器上的内容。 我倾向于在桌面上重命名这个新的快捷方式(大写形式),并将其从其他图标上移开,因此对于普通的Chrome来说不要混淆。

希望这可以帮助!


#24楼

在Linux- Ubuntu上,要同时运行正常会话和不安全会话,请运行以下命令:

google-chrome  --user-data-dir=/tmp --disable-web-security

#25楼

这是一个不断变化的目标。...今天,我需要添加另一个标志使其--disable-site-isolation-trials :-- --disable-site-isolation-trials

OS X: open /Applications/Google\\ Chrome.app --args --user-data-dir="/var/tmp/Chrome_dev_2" --disable-web-security --disable-site-isolation-trials


#26楼

使用当前最新的chrome版本(76.0.3809.132(正式版本)(64位)),使其在我的测试中起作用的唯一方法是使用以下标志启动chrome(将D:\\ temp更改为您喜欢的方式) :

--disable-site-isolation-trials --disable-web-security --user-data-dir =“ D:\\ temp”

在Windows中,单击开始按钮,然后复制并粘贴以下内容:

chrome.exe  --disable-site-isolation-trials --disable-web-security --user-data-dir="D:\temp"

编辑:

-test-type

在此处输入图片说明


#27楼

尝试转到此页面并为您的网站域禁用域安全策略。

chrome://net-internals/#hsts

#28楼

Chrome的Allow-Control-Allow-Origin插件不起作用。 这是针对MacOS

我在.profile中添加了alias chrome='open -n -a /Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome --args --user-data-dir --disable-web-security'别名。

其他命令将禁用我的其他扩展名,这将在禁用cors的情况下引导您的普通chrome


#29楼

是的 对于OSX,打开终端并运行:

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

--OSX上的Chrome 49+需要--user-data-dir

对于Linux运行:

$ google-chrome --disable-web-security

另外,如果您尝试出于开发目的(例如AJAX或JSON)访问本地文件,也可以使用此标志。

-–allow-file-access-from-files

对于Windows,请进入命令提示符并进入Chrome.exe所在的文件夹,然后键入

chrome.exe --disable-web-security

那应该禁用相同的原始策略,并允许您访问本地文件。

更新:对于Chrome 22+,您将看到一条错误消息,内容为:

您正在使用不受支持的命令行标志:--disable-web-security。 稳定性和安全性将受到损害。

但是,您可以在开发时忽略该消息。


#30楼

对于Selenium Webdriver,在这种情况下,您可以让Selenium用适当的参数(或“开关”)启动Chrome。

 @driver = Selenium::WebDriver.for(:Chrome, { 
       :detach => false,
       :switches => ["--disable-web-security"]
    })
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值