当前位置:  开发笔记 > 编程语言 > 正文

在Chrome中停用相同的来源政策

如何解决《在Chrome中停用相同的来源政策》经验,为你挑选了24个好方法。

有没有办法在Google的Chrome浏览器上禁用同源策略?

这是严格的开发,而不是生产用途.



1> ectype..:

是的.对于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.稳定性和安全性将受到影响

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


显然现在`--disable-web-security`不起作用,除非你也明确地给出`--user-data-dir`.即OSX`/Applications/Google\Chrome.app/Contents/MacOS/Google\Chrome --disable-web-security --user-data-dir =〜/ ChromeUserData /`.
@Sam确保您已关闭所有Chrome进程,然后重试.如果您已正确完成,Chrome将发出警告标题:"您使用的是不受支持的命令行标记: - disable-web-security.稳定性和安全性将受到影响"
您无需先关闭所有Chrome进程.你可以使用`open -n`.只需运行`open -n -a Google\Chrome --args --disable-web-security --user-data-dir =/tmp/chrome`.这将在您的Mac上打开第二个Chrome应用实例,您可以并排使用它们.
刚刚在电脑上试过这个(镀铬29),我仍然得到这些可爱的Origin***是不允许的Access ...
有没有办法防止错误信息出现?我在没有键盘或鼠标的数字墙板上使用这个标志.
此解决方案在最新版本的Chrome上不再起作用。查看此错误报告-> https://bugs.chromium.org/p/chromium/issues/detail?id=840124

2> Dagg Nabbit..:

关闭铬(或铬)并使用--disable-web-security参数重新启动.我刚刚对此进行了测试,并验证了我可以访问iframe的内容,其中src ="http://google.com"嵌入在"localhost"(在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


如何在OS X上执行此操作?
@ landon9720关闭Chrome,打开终端,输入`open/Applications/Google\Chrome.app --args --disable-web-security`
在Chrome 48和49中,还必须添加`--user-data-dir`.
@ landon9720通过**ectype**查看答案.
@Berty只需关闭chrome并在没有标签的情况下打开它.只有*使用该标签打开时,Chrome才会处于该模式*
这仍然有效,但在使用标志设置运行之前,必须关闭所有chrome实例.
我怎样才能重新启用它?chrome.exe --enable-web-security不起作用^^
@MarekCzaplicki在版本55上,它要求你为--user-data-dir定义一个实际目录(--user-data-dir = )一旦完成,这对我来说非常合适.
这似乎不再适用于最近的Chrome版本
这似乎不适用于当前版本的chrome
为了防止其他人遇到同样的问题,我发现在此之前我已经完成了所有正在运行的chrome进程.
此解决方案在最新版本的Chrome上不再起作用。查看此错误报告-> https://bugs.chromium.org/p/chromium/issues/detail?id=840124
我确认它在Chrome 67中不再起作用。...目前,我已经安装了便携式版本的Chrome 66(https://portableapps.com/redirect/?a=GoogleChromePortable&s=s&p=&d=sfpa&f=GoogleChromePortable_66 .0.3359.181_online.paf.exe)
这不再起作用,请在此处评论错误提交:https://bugs.chromium.org/p/chromium/issues/detail?id=857032

3> Ola Karlsson..:

对于Windows用户:

在我看来,此处接受的解决方案的问题是,如果您已经打开Chrome并尝试运行它,则无法运行.

但是,在研究这个时,我发现了一个关于超级用户的帖子,是否可以同时运行带有和不带网络安全的Chrome?.

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

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

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


太好了,谢谢.多亏了这个,我已经能够将一个网页作为一个独立的应用程序启动了"C:\ ..\chrome.exe"--disable-web-security --user-agent ="Android"--user-data -dir ="C:/ temp-chrome-eng"--app ="file:/// C:/apps/index.html"`
此命令在OSX中通过启动第二个实例起作用:`open -n -a/Applications/Google\Chrome.app --args --user-data-dir ="/ tmp/chrome_dev_session"--disable-web-security` (您可能需要先创建临时文件夹)
这是一种享受.它还保留了我正常的chrome实例,安全性已打开且运行正常.只要注意到它确实有效,Chrome会通知您"稳定性和安全性会受到影响".
正是在尝试对我本地计算机上的API进行开发时我需要的.

4> GSB..:

对于Windows:

    打开开始菜单

    键入windows+ R或打开"运行"

    执行以下命令:

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


对于Mac:

    去终端

    执行以下命令:

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


应打开一个新的Web安全禁用Chrome浏览器,并显示以下消息:

在此输入图像描述


@downvoters请提及downvote的原因,因为没有任何关于downvote的回答

5> Coburn..:

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

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

基本上它是一个小的切换开关来打开和关闭Allow-Access-Origin-Control检查.对我来说非常适合我正在做的事情.

编辑:我尝试使用另一天的另一个项目,它停止工作.卸载并重新安装扩展程序修复它(重置默认值).

编辑2:我再也无法让它始终如一地运作


@bryc这并不是真正意义上的.但请考虑您可以使用`--allow-file-access-from-files`而不是禁用所有Web安全性.

6> Ognyan Dimit..:

对于使用Chrome版本60.0.3112.78(解决方案经过测试和工作的那天)的Windows用户,至少到今天19.01.2019(版本71.0.3578.98).你并不需要关闭任何Chrome实例.

    在桌面上创建快捷方式

    右键单击快捷方式,然后单击"属性"

    编辑Target属性

    将其设置为"C:\ Program Files(x86)\ Google\Chrome\Application\chrome.exe"--disable-web-security --user-data-dir ="C:/ ChromeDevSession"

    启动chrome并忽略不支持--disable-web-security的消息!

请注意不要使用这个特殊的浏览器进行浏览,因为你可能会被它搞砸!



7> Jianwu Chen..:

似乎以上解决方案都没有实际工作.本-禁用网络安全是近年来铬版本不再支持.

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

不确定为什么Chrome让开发人员的生活如此艰难.它阻止了所有可能的方法来禁用XSS安全检查,即使是完全没必要的开发使用.

经过几天的努力和研究,一个解决方案对我来说非常有效:使用corsproxy.这里有两个选项:1.使用corsproxy.com 2.在本地框中安装corsproxy:npm install -g corsproxy

[更新于2018年6月23日]最近我正在开发一个需要再次使用corsproxy的SPA应用程序.但似乎没有github上的corsproxy可以满足我的要求.

出于安全原因需要它在防火墙内运行.所以我不能使用https://cors-anywhere.herokuapp.com/.

它必须支持https,因为chrome会在https页面中阻止no-https ajax请求.

我需要在nodejs上运行.我不想维护另一个语言堆栈.

所以我决定使用nodejs开发自己的corsproxy版本.它实际上非常简单.我已经将它作为github上的要点发布了.这是源代码要点:https: //gist.github.com/jianwu/8e76eaec95d9b1300c59596fbfc21b10

它是在plain nodejs代码中没有任何其他依赖项

您可以在http和https模式下运行(通过在命令行中传递https端口号),以运行https,您需要生成证书和密钥并将它们放在webroot目录中.

它还用作静态文件服务器

它也支持飞行前OPTION请求.


不正确..接受的答案中提到的方式对我有用..正如它所提到的,Chrome 49以后命令'chrome.exe --disable-web-security --user-data-dir'为我工作..
在53+中,您需要实际提供一个与您的普通目录不同的唯一用户数据目录.这将为不安全的环境创建新的配置文件.--user-data-dir需要设置为等于某些东西,例如在上面的Olas回答中.如果你真的想要,你可以将它设置为与你的实际普通用户配置文件夹相同,但是这是非常不鼓励的,因为如果你在该模式下开始正常浏览,它会使你的正常配置文件对意外攻击开放.
Chromium 53,--disable-web-security --user-data-dir对我不起作用

8> molokoloco..:

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

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

(将'C:....\chrome.exe'更改为您的chrome所在的位置).

etvoilà:)


不幸的是,这对我不起作用.
@khoailang,您仍然可以使用该开关。该警告是Google对抗不安全之战的一部分(一件好事)。另外,从55+版本开始,您还需要使用--user-data-dir = <此处的其他目录>,因此Google不想让您将不安全的规则与常规配置文件混合使用。

9> Vivek Sinha..:

在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.



10> etoxin..:

我发现最好的方法是在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"

在此输入图像描述


@etoxin这个答案在最新版本的chrome中不再有效.你必须添加--disable-web-security --user-data-dir ="D:/ Chrome"

11> Mohamed Sale..:

你可以使用这个名为"Allow-Control-Allow-Origin:*"的chrome插件......它使它变得简单而且工作得非常好. 在这里查看:*

Chrome扩展程序


它将"evil.com"网站设为原点,看起来很可疑.
截至本评论发布之日,该功能不再可用。建议只使用标志路线。

12> 小智..:

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

 @driver = Selenium::WebDriver.for(:Chrome, { 
       :detach => false,
       :switches => ["--disable-web-security"]
    })



13> user2576266..:

使用当前最新的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



14> chhantyal..:

如果您在Linux上使用Google Chrome,则以下命令有效.

google-chrome  --disable-web-security



15> gman..:

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

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

cd path/to/files
python -m SimpleHTTPServer

然后将浏览器指向

http://localhost:8000

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

更新资料

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

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

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


这不会使“您的机器”受到攻击。恶意的JavaScript代码将无法在客户端计算机本身上做很多事情。但是,您将允许恶意JavaScript代码潜在地操纵您在其他网站(facebook / administrations / banks / ...)上的帐户。这当然并没有那么危险,但是完全不同。
尽管如此,用户可能仍需要这样做。问题不在运行服务器。问题是在将CORS放入不需要更改的验收/生产服务器上之前先对其进行测试。修改主机文件也不起作用。

16> Bruce..:

此Chrome插件适用于我: Allow-Control-Allow-Origin:* - Chrome网上应用店


这个插件在我的浏览器中崩溃并开始破坏所有XHR的东西.谨慎使用.

17> MechaCode..:
chromium-browser --disable-web-security --user-data-dir=~/ChromeUserData/



18> Saurabh Chan..:

仅适用于MAC用户

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



19> Peter Wilson..:

您只需使用此chrome扩展名Allow-Control-Allow-Origin即可

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



20> 小智..:

在Windows 10上,以下内容将起作用.

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



21> guya..:

关于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.Canary_CORS.bat

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



22> Santiago M. ..:

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

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



23> Braian Mello..:

对于mac用户:

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

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

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



24> Mowzer..:

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

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

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

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有