在Chrome中停用相同的原产地策略

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

这是严格的发展,而不是生产,使用。

closures铬(或铬),并使用--disable-web-security参数重新启动。 我只是testing了这一点,并validation了我可以访问embedded在从“localhost”(在铬5 / Ubuntu下testing)的页面中embedded的src =“http://google.com”的iframe的内容。; 对我来说,确切的命令是:

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

 chromium-browser --disable-web-security --user-data-dir 

浏览器会在首次打开时警告您“您使用的是不受支持的命令行”,您可以忽略它。

来自铬源:

 // 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 

是的。 对于OSX,打开terminal并运行:

 $ 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。 稳定性和安全性将受损。

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

对于Windows用户:

在这里接受解决scheme的问题,在我看来,如果你已经打开了Chrome并尝试运行它,它将无法正常工作。

但是,在研究这个时,我遇到了超级用户的post, 是否可以同时运行Chrome和没有networking安全?

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

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

您可以在保持打开其他“安全”浏览器实例的同时打开一个新的“不安全”的Chrome实例。

我不想重新启动Chrome,并禁用我的networking安全(因为我正在浏览时,正在开发),并偶然发现这个Chrome扩展。

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

基本上它是一个小切换开关来打开和closures允许访问原点控制检查。 为我所做的完美工作。

编辑:我试着用另一个项目的那一天,它停止工作。 卸载并重新安装扩展固定它(重置默认值)。

对于Windows

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

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

对于Mac

  1. 去terminal
  2. 执行以下命令:

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

新的networking安全禁用铬浏览器应打开以下消息:

在这里输入图像描述

对于Windows …在桌面上创buildChrome快捷方式。
右键菜单>属性>快捷方式
编辑“目标”path:

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

等voilà:)

似乎没有任何上述解决scheme实际工作。 最近的chrome版本不再支持–disable-web-security

Allow-Control-Allow-Origin:* – chrome扩展部分解决了这个问题。 它只适用于你的请求使用GET方法,并没有自定义的HTTP头。 否则,chrome将发送OPTIONS http请求作为飞行前请求。 如果服务器不支持CORS,它将以404 HTTP状态码进行响应。 该插件无法修改响应HTTP状态码。 所以铬会拒绝这个请求。 Chrome插件无法根据当前的Chrome扩展API修改响应HTTP状态代码。 而且你也不能为XHR发起的请求做一个redirect。

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

经过几天的努力和研究,一个解决scheme对我来说非常完美:使用corsproxy 。 你有两个select:1.使用corsproxy.com 2.在本地安装corsproxy: npm install -g corsproxy

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

在目标中添加--disable-web-security --user-data-dir="D:/Chrome"到目标path的末尾。

你的目标应该是这样的:

更新:添加新的标志。

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

在这里输入图像描述

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

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

对于Chrome版本为60.0.3112.78的 Windows用户。 你不需要closures任何chrome实例。

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

注意不要使用这个特殊的浏览器实例浏览!

如果您在Linux上使用Google Chrome,请执行以下命令。

 google-chrome --disable-web-security 

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

你可以使用这个名为“Allow-Control-Allow-Origin:*”的chrome插件…它使它变得简单而且工作得很好。 在这里检查:*

Chrome扩展

你可以简单地使用这个扩展的允许控制允许来源

只需点击extensnion图标即可启用或禁用启用跨资源共享

在Ola Karlsson的回答之后,确实最好的办法是在不同的会话中打开不安全的Chrome。 这样,您不必担心closures所有当前打开的选项卡,而且可以继续使用原始Chrome会话安全地浏览网页。

这些batch file应该适用于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 
 chromium-browser --disable-web-security --user-data-dir=~/ChromeUserData/ 

在Windows 10上,以下将工作。

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

对于mac用户:

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

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

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

仅供MAC用户使用

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

不要这样做! 你正在打开你的账户进行攻击 。 一旦你这样做,任何第三方网站都可以开始向其他网站,你login的网站发出请求。

而是运行一个本地服务器。 就像打开一个shell /terminal/命令行和打字一样简单

 cd path/to/files python -m SimpleHTTPServer 

然后把你的浏览器指向

 http://localhost:8000 

如果你觉得这个太慢, 考虑这个解决scheme

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

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

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

对于Windows:

(使用Windows 8.1,Chrome 44.0

首先,closures谷歌浏览器。

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

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

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

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

铬的新窗口将打开。

在Windows PC上,使用较旧版本的Chrome,该命令适用于所有人。 我降级了我的Chrome到26版本,它的工作。