在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 :
- 打开开始菜单
- 键入windows + R或打开“运行”
-
执行以下命令:
chrome.exe --user-data-dir="C://Chrome dev session" --disable-web-security
对于Mac :
- 去terminal
-
执行以下命令:
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实例。
- 在桌面上创build一个快捷方式
- 用鼠标右键单击该快捷方式,然后单击属性
- 编辑目标属性
- 将它设置为“C:\ Program Files(x86)\ Google \ Chrome \ Application \ chrome.exe”–disable-web-security –user-data-dir =“C:/ ChromeDevSession”
- 启动浏览器,并忽略说不支持–disable-web-security的消息!
注意不要使用这个特殊的浏览器实例浏览!
如果您在Linux上使用Google Chrome,请执行以下命令。
google-chrome --disable-web-security
此Chrome插件适用于我: Allow-Control-Allow-Origin:* – Chrome网上应用店
你可以使用这个名为“Allow-Control-Allow-Origin:*”的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版本,它的工作。