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


关闭chrome(或chrome)并使用--disable web安全参数重新启动。我刚刚测试了这个,并验证了我可以使用src=“”访问iframe的内容http://google.com嵌入在“localhost”(在chromium 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

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

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

--OSX上的Chrome 49+需要用户数据目录

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

然而,您可以在开发时忽略该信息。


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

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

若您在Linux上使用Google Chrome,则以下命令有效。

google-chrome  --disable-web-security

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

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

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

等等:)


对于Windows用户:

在我看来,这里接受的解决方案的问题是,如果您已经打开了Chrome并尝试运行Chrome.exe--disable-websecurity命令,它将无法工作。

然而,在研究这一问题时,我在超级用户网站上看到了一篇帖子,“是否可以同时运行具有和不具有网络安全性的Chrome?”?。

基本上,你需要添加到命令中,然后像这样运行它(或者用它创建一个快捷方式,然后运行一个新的Chrome实例)

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

它将打开一个新的“不安全”的Chrome实例,同时保持其他“安全”的浏览器实例打开并正常工作。

这是通过在C:下创建一个新的文件夹/目录“Chrome-dev-session”来实现的,告诉这个新的Chrome实例使用该文件夹/目录作为其用户和会话数据。因此,新实例与您的“正常”Chrome数据分离,您的书签和其他保存的数据在此实例中不可用。

注意:只有使用此方法打开的Chrome的第一个“新”实例才会生效,因此它只是第一个新Chrome窗口中的第一个选项卡,才会生效。如果您关闭了该实例,您可以再次使用相同的命令,例如,指向本地应用程序或类似应用程序的任何书签仍将存在,因为它指向同一文件夹。

如果要运行多个“不安全”实例,每个实例都需要自己的文件夹/目录,因此需要使用不同的文件夹名称再次运行命令。然而,这也意味着每个不安全的实例都将与其他实例分离,因此任何书签或其他保存的用户或会话数据在实例之间都不可用。


在Windows PC上,使用较旧版本的Chrome,该命令将适用于所有人。我把我的Chrome降到了26版,而且效果不错。


编辑3:扩展似乎不再存在。。。这些天来,为了避开CORS,我通常会在单独的目录中设置另一个版本的Chrome,或者使用Firefoxhttps://addons.mozilla.org/en-US/firefox/addon/cors-everywhere/相反

编辑2:我再也无法让这项工作持续下去了。

编辑:前几天我试着用另一个项目,但它停止了工作。卸载并重新安装扩展修复了它(以重置默认值)。

原始答案:

我不想重启Chrome并禁用我的网络安全(因为我在开发时正在浏览),无意中发现了这个Chrome扩展。

Chrome Web Store允许控件允许来源:*(https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en)

基本上,它是一个小切换开关,用于打开和关闭“允许访问源代码控制”检查。对于我所做的一切来说,这是完美的。


这个Chrome插件适合我:允许控件允许来源:*-Chrome Web商店


似乎上述解决方案都不起作用。最近的chrome版本不再支持--disable web安全性。

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

不知道为什么Chrome会让开发者生活如此艰难。它阻止了禁用XSS安全检查的所有可能方式,即使是用于开发用途,这是完全不必要的。

经过几天的努力和研究,有一个解决方案对我来说非常有效:使用corsporoxy。这里有两个选项:1.使用[https://cors-anywhere.herokuapp.com/]2.在本地箱中安装corsporoxy:npm install-g corsporoxy

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

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

所以我决定用nodejs开发我自己版本的corsporoxy。其实很简单。我已经在github上发布了它作为一个要点。以下是源代码要点:https://gist.github.com/jianwu/8e76eaec95d9b1300c59596fbfc21b10

它是普通的nodejs代码,没有任何附加的依赖关系您可以在http和https模式下运行(通过传递https端口命令行中的数字),要运行https,需要生成cert和键并将它们放在webroot目录中。它还充当静态文件服务器它还支持飞行前OPTION请求。

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

要访问代理,请执行以下操作:http://host:8080/http://www.somesite.com


您可以简单地使用这个chrome扩展名Allow Control Allow Origin

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


对于Windows:

(使用windows 8.1,chrome 44.0)

首先,关闭谷歌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--禁用web安全

一个新的铬窗口将打开。


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

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

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


根据奥拉·卡尔森的回答,最好的方法是在不同的会话中打开不安全的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

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

对于mac用户:

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

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

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

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

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

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


对于Windows:

打开开始菜单键入windows+R或打开“运行”执行以下命令:chrome.exe--user data dir=“C:\/chrome dev session”--禁用web安全


对于Mac:

转到终端执行以下命令:open/Applications/Google\Chrome.app--args--用户数据dir=“/var/tmp/Chrome-dev会话”--禁用web安全


新的禁用web安全的chrome浏览器将打开,并显示以下消息:

对于Mac

如果您想在不关闭现有选项卡的情况下打开禁用web安全的Chrome浏览器的新实例,请使用以下命令

open -na Google\ Chrome --args --user-data-dir=/tmp/temporary-chrome-profile-dir --disable-web-security

它将打开禁用web安全的Chrome浏览器的新实例,如下所示


你可以使用这个名为“允许控制允许来源:*”的chrome插件。。。这使它变得非常简单,而且工作得非常好。在此处检查:*


仅适用于MAC用户

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

对于使用**Chrome版本60.0.3112.78(解决方案测试和工作的当天)的windows用户,至少到今天为止是2022年11月24日(版本106.05.249.119(官方版本)(64位))。您不需要关闭任何chrome实例。

在桌面上创建快捷方式右键单击快捷方式,然后单击“财产”编辑Target属性将其设置为“C:\Program Files(x86)\Google\Chrome\Application\Chrome.exe”--禁用web安全--用户数据dir=“C:\ChromeDevSession”启动chrome并忽略消息:禁用网络安全不受支持!

注意不要使用这个特定的浏览器实例进行浏览,因为你可能会被黑客入侵!


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


我有时会使用这个方法,将本地主机前端站点发布到本地主机后端API(例如,React到旧的.NET API)。我在Windows 10桌面上创建了一个单独的快捷方式,这样它就不会用于正常浏览,只用于本地调试。我执行了以下操作:-

右键单击桌面,添加新快捷方式将目标添加为“[PATH_TO_CHROME]\CHROME.exe”--禁用web安全单击“确定”。

这个浏览器加载时,你会收到一个警告,说它不安全,只需注意你在它上的浏览器。我倾向于在桌面上重命名这个新的快捷方式,用大写字母表示,并将其从我的其他图标上移开,因此它不会与普通的Chrome混淆。

希望这有帮助!


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

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

这是一个不断移动的目标。。。。今天我需要添加另一个标志以使其生效:--禁用站点隔离试验

操作系统X:open/Applications/Google\Chrome.app--args--用户数据dir=“/var/tmp/Chrome_dev_2”--禁用web安全--禁用站点隔离测试


使用当前最新的chrome版本103.0.5060.134(官方版本)(64位)

windows:单击开始按钮,然后复制粘贴以下内容(根据您的喜好更改D:\temp)。:

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

Linux:启动终端,然后运行以下命令(根据需要更改~/tmp目录)

google-chrome --disable-site-isolation-trials --disable-web-security --user-data-dir="~/tmp"

注意:此解决方案将在独立的沙盒中启动chrome,并且不会影响主chrome配置文件。


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

chrome://net-internals/#hsts

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

我将别名chrome='open-n-a/Applications/Google\chrome.app/Contents/MacOS/Google\Chrme--args-user data dir--disable web security'作为别名添加到我的.profile中。

其他命令将禁用我的其他扩展,这将在禁用cors的情况下启动正常的chrome


对于OSX,从终端运行以下命令:

open -na Google\ Chrome --args --disable-web-security --user-data-dir=$HOME/profile-folder-name

这将启动一个新的GoogleChrome实例,并在顶部显示警告。

注意:如果您使用--user data dir,那么chrome将与您的用户数据文件夹断开连接(并将您从所有站点注销),即使您在没有任何参数的情况下再次运行它。要回滚此操作,您需要以上述方式打开,但不使用prameter。


在Ubuntu中使用以下命令启动chrome(禁用同源策略并在分离模式下打开chrome):

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

创建快捷方式:


粘贴命令:

cmd/c start chrome--禁用web安全--用户数据dir=“c:\temp\chrome”


以管理员身份运行


禁用此标志为chrome-chrome://flags/#reduced-引用者粒度它应该起作用


只有对于OSX Catalina,以下命令对我有效。

open-n-a/Applications/Google\Chrome.app/Contents/MacOS/Google\Chrome--args--用户数据dir=“/tmp/Chrome_dev_test”--禁用web安全


在Windows中:

创建快捷方式并设置目标:

“C:\Program Files\Google\Chrome\Application\Chrome.exe”--禁用站点隔离测试--禁用web安全--用户数据dir=“C:\ChromeDevSession”