Gibt es eine Möglichkeit, die Same-Origin-Richtlinie bei Google Chrome Browser zu deaktivieren?
Dies ist ausschließlich für die Entwicklung und nicht für die Produktion gedacht.
Schließen Sie Chrom (oder Chrom) und starten Sie das Argument --disable-web-security
erneut. Ich habe dies gerade getestet und festgestellt, dass ich auf den Inhalt eines iframe mit src = "http://google.com" zugreifen kann, das in einer von "localhost" bereitgestellten Seite eingebettet ist (getestet unter Chrom 5/ubuntu). Für mich war der genaue Befehl:
Hinweis: Beenden Sie alle Chrome-Instanzen, bevor Sie den Befehl ausführen.
chromium-browser --disable-web-security --user-data-dir="[some directory here]"
Der Browser wird Sie beim ersten Öffnen darauf hinweisen, dass "Sie eine nicht unterstützte Befehlszeile verwenden", die Sie ignorieren können.
Von der Chromquelle:
// Don't enforce the same-Origin policy. (Used by people testing their sites.)
const wchar_t kDisableWebSecurity[] = L"disable-web-security";
Vor Chrome 48 könnten Sie einfach Folgendes verwenden:
chromium-browser --disable-web-security
Ja. Öffnen Sie unter OSX das Terminal und führen Sie Folgendes aus:
$ open -a Google\ Chrome --args --disable-web-security --user-data-dir
--user-data-dir für Chrome 49+ unter OSX erforderlich
Für Linux laufen:
$ google-chrome --disable-web-security
Wenn Sie versuchen, auf lokale Dateien zu dev-Zwecken wie AJAX oder JSON zuzugreifen, können Sie auch dieses Flag verwenden.
-–allow-file-access-from-files
Für Windows gehen Sie in den Befehl Prompt und gehen in den Ordner, in dem sich Chrome.exe befindet, und geben Sie ein
chrome.exe --disable-web-security
Dies sollte die gleiche Origin-Richtlinie deaktivieren und Ihnen den Zugriff auf lokale Dateien ermöglichen.
Update: Für Chrome 22+ wird eine Fehlermeldung mit der folgenden Meldung angezeigt:
Sie verwenden ein nicht unterstütztes Befehlszeilenflag: --disable-web-security. Stabilität und Sicherheit werden leiden.
Sie können diese Nachricht jedoch während der Entwicklung einfach ignorieren.
Für Windows Benutzer:
Das Problem mit der hier akzeptierten Lösung ist meiner Meinung nach, wenn Sie Chrome bereits geöffnet haben und versuchen, dies auszuführen, funktioniert es nicht.
Bei der Recherche stieß ich jedoch auf einen Beitrag zu Super User: Ist es möglich, Chrome mit und ohne Websicherheit gleichzeitig auszuführen?.
Grundsätzlich, indem Sie den folgenden Befehl ausführen (oder eine Verknüpfung erstellen und Chrome dadurch öffnen)
chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security
sie können eine neue "unsichere" Instanz von Chrome gleichzeitig öffnen, während Sie Ihre anderen "sicheren" Browserinstanzen geöffnet halten und normal arbeiten. Important: C:/Chrome dev session
-Ordner löschen/löschen jedes Mal, wenn Sie ein Fenster zum zweiten Mal öffnen, --disable-web-security
funktioniert nicht. Sie können Ihre Änderungen also nicht speichern und dann als zweite unsichere Instanz von Chrome mit --disable-web-security
erneut öffnen.
Für Windows :
Führen Sie den folgenden Befehl aus:
chrome.exe --user-data-dir="C://Chrome dev session" --disable-web-security
Für Mac :
Führen Sie den folgenden Befehl aus:
open /Applications/Google\ Chrome.app --args --user-data-dir="/var/tmp/Chrome dev session" --disable-web-security
Ein neuer Chrome-Browser mit deaktivierter Websicherheit sollte mit der folgenden Meldung geöffnet werden:
Ich wollte Chrome nicht neu starten und meine Internetsicherheit deaktivieren (da ich während der Entwicklung surfte) und auf diese Chrome-Erweiterung gestoßen bin.
Im Grunde ist es ein kleiner Umschalter, um die Überprüfung von Allow-Access-Origin-Control ein- und auszuschalten. Funktioniert perfekt für mich für das, was ich tue.
EDIT: Ich habe den neulich für ein anderes Projekt ausprobiert und es hörte auf zu arbeiten. Durch die Deinstallation und Neuinstallation der Erweiterung wurde diese behoben (um die Standardeinstellungen zurückzusetzen).
EDIT 2: Ich kann das nicht mehr durchgängig funktionieren lassen
Für Windows Benutzer mit Chrome-Versionen 60.0.3112.78 (der Tag, an dem die Lösung getestet und gearbeitet wurde) und mindestens bis heute 19.01.2019 (ver. 71.0.3578.98). Sie müssen nicht eine Chrome-Instanz schließen.
BEACHTEN SIE NICHT, DIESE BESONDERE BROWSER-INSTANZ ZU VERWENDEN, WEIL SIE MIT IHM GEHAKT WERDEN KÖNNEN!
Es scheint, dass keine der oben genannten Lösungen tatsächlich funktioniert. Die --disable-web-security wird in aktuellen Chrome-Versionen nicht mehr unterstützt.
Allow-Control-Allow-Origin: * - Die Chrome-Erweiterung hat das Problem teilweise gelöst. Dies funktioniert nur, wenn Ihre Anfrage die GET-Methode verwendet und kein benutzerdefinierter HTTP-Header vorhanden ist. Andernfalls sendet Chrome eine HTTP-Anforderung von OPTIONS als Anforderung vor dem Flug. Wenn der Server CORS nicht unterstützt, antwortet er mit dem HTTP-Statuscode 404. Das Plugin kann den Antwort-HTTP-Statuscode nicht ändern. Chrom wird diese Anfrage also ablehnen. Es gibt keine Möglichkeit für das Chrome-Plugin, den Antwort-HTTP-Statuscode basierend auf der aktuellen Chrome-Erweiterungs-API zu ändern. Sie können auch keine Umleitung für eine durch XHR initiierte Anforderung durchführen.
Nicht sicher, warum Chrome das Leben der Entwickler so schwierig macht. Es blockiert alle Möglichkeiten, die XSS-Sicherheitsüberprüfung zu deaktivieren, selbst wenn der Entwicklungsaufwand völlig überflüssig ist.
Nach tagelangem Kampf und Forschung funktioniert eine Lösung perfekt für mich: corsproxy zu verwenden. Sie haben hier zwei Möglichkeiten: 1. Verwenden Sie corsproxy.com 2. corsproxy in der lokalen Box installieren: npm install -g corsproxy
[Aktualisiert am 23. Juni 2018] Kürzlich entwickle ich eine SPA-App, die erneut Corsproxy verwenden muss. Aber es scheint, als ob kein Corspoxy auf dem Github meine Anforderung erfüllen könnte.
Daher entscheide ich mich, eine eigene Version von Corsproxy mit nodejs zu entwickeln. Es ist eigentlich sehr einfach. Ich habe es als Gist auf dem Github veröffentlicht. Hier ist der Quellcode Gist: https://Gist.github.com/jianwu/8e76eaec95d9b1300c59596fbfc21b10
Für Windows ... erstellen Sie eine Chrome-Verknüpfung auf Ihrem Desktop.
Klicken Sie mit der rechten Maustaste> Eigenschaften> Verknüpfung
"Ziel" -Pfad bearbeiten:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --args --disable-web-security
(Ändern Sie "C: ....\chrome.exe" an die Stelle, an der sich Ihr Chrome befindet).
und voilà :)
Ich finde, der beste Weg, dies zu tun, ist das Kopieren einer Chrome- oder Chrome-Canary-Verknüpfung auf Ihrem Windows-Desktop. Benennen Sie diese Verknüpfung in "NO CORS" um und bearbeiten Sie dann die Eigenschaften dieser Verknüpfung.
fügen Sie im Ziel --disable-web-security --user-data-dir="D:/Chrome"
am Ende des Zielpfads hinzu.
dein Ziel sollte ungefähr so aussehen:
Update: Neue Flags hinzugefügt.
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="D:/Chrome"
Versuchen Sie diesen Befehl auf einem Mac-Terminal.
open -n -a "Google Chrome" --args --user-data-dir=/tmp/temp_chrome_user_data_dir http://localhost:8100/ --disable-web-security
Es öffnet eine weitere Instanz von Chrome mit deaktivierter Sicherheit und es gibt kein CORS-Problem mehr. Außerdem müssen Sie keine anderen Chrome-Instanzen mehr schließen. Ändern Sie die localhost-URL in Ihre URL.
Sie können dieses chrome Plugin mit dem Namen "Allow-Control-Allow-Origin: *" verwenden. Es macht es einfach und funktioniert sehr gut. überprüfen Sie es hier: *
Für Selenium Webdriver können Sie in diesem Fall festlegen, dass Selen Chrome mit den entsprechenden Argumenten (oder "Schaltern") startet.
@driver = Selenium::WebDriver.for(:Chrome, {
:detach => false,
:switches => ["--disable-web-security"]
})
Wenn Sie Google Chrome unter Linux verwenden, funktioniert der folgende Befehl.
google-chrome --disable-web-security
Dieses Chrome-Plugin funktioniert für mich: Allow-Control-Allow-Origin: * - Chrome Web Store
chromium-browser --disable-web-security --user-data-dir=~/ChromeUserData/
Unter Windows 10 wird Folgendes funktionieren.
<<path>>\chrome.exe --allow-file-access-from-files --allow-file-access --allow-cross-Origin-auth-Prompt
NUR FÜR MAC-BENUTZER
open -n -a /Applications/Google\ Chrome.app --args --user-data-dir="/tmp/someFolderName" --disable-web-security
Sie können diese Chrome-Erweiterung einfach verwenden Allow-Control-Allow-Origin
klicken Sie einfach auf das Symbol der Erweiterung, um die Ressourcenfreigabe nach Belieben ein- oder auszuschalten
Nach der Antwort von Ola Karlsson wäre es tatsächlich der beste Weg, das unsichere Chrome in einer anderen Sitzung zu öffnen. Auf diese Weise müssen Sie sich nicht darum kümmern, alle derzeit geöffneten Registerkarten zu schließen, und Sie können mit der ursprünglichen Chrome-Sitzung auch weiterhin sicher im Web surfen.
Diese Batch-Dateien sollten unter Windows nur für Sie funktionieren.
Legen Sie es in eine Chrome_CORS.bat-Datei , um die Verwendung zu erleichtern
start "" "c:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir="c:/_chrome_dev" --disable-web-security
Dies ist für 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
Es gibt eine Chrome-Erweiterung namens CORS Toggle.
Klicken Sie hier, um darauf zuzugreifen und es zu Chrome hinzuzufügen.
Wechseln Sie nach dem Hinzufügen zur Position on, um domänenübergreifende Anforderungen zuzulassen.
für Mac-Benutzer:
open -a "Google Chrome" --args --disable-web-security --user-data-dir
und vor Chrome 48 könnten Sie einfach Folgendes verwenden:
open -a "Google Chrome" --args --disable-web-security
unter Verwendung der aktuellsten Chrome-Versionen (73.0.3683.86) war die einzige Möglichkeit, dies in meinem Test zum Funktionieren zu bringen, das Starten von Chrome mithilfe der folgenden Flags (ändern Sie D:\temp nach Ihren Wünschen) ):
--disable-site-isolation-trial --disable-web-security --user-data-dir = "D:\temp"
klicken Sie in Windows auf die Schaltfläche "Start" und fügen Sie dann Folgendes ein:
chrome.exe --disable-site-isolation-trials --disable-web-security --user-data-dir="D:\temp"
Tu das nicht!Sie öffnen Ihre Konten für Angriffe . Sobald Sie dies getan haben, kann jede Drittanbieter-Site Anfragen an andere Websites ausgeben, an denen Sie angemeldet sind.
Führen Sie stattdessen einen lokalen Server aus. Es ist so einfach wie das Öffnen einer Shell/Terminal/Befehlszeile und das Eingeben
cd path/to/files
python -m SimpleHTTPServer
Dann zeigt Ihr Browser auf
http://localhost:8000
Wenn Sie feststellen, dass es zu langsam ist betrachten Sie diese Lösung
Für Windows:
(mit windows 8.1, chrome 44.0 )
Schließen Sie zunächst Google Chrome.
Öffnen Sie dann die Eingabeaufforderung und wechseln Sie in den Ordner, in dem sich die Datei 'chrome.exe' befindet.
( for me: 'chrome.exe' is here "C:\Program Files (x86)\Google\Chrome\Application".
Also tippe ich: cd C:\Program Files (x86)\Google\Chrome\Application
)
geben Sie jetzt ein: chrome.exe --disable-web-security
ein neues Fenster wird geöffnet.
Um unter Linux Ubuntu gleichzeitig eine normale Sitzung und eine unsichere Sitzung auszuführen, führen Sie den folgenden Befehl aus:
google-chrome --user-data-dir=/tmp --disable-web-security
dies ist ein sich ständig bewegendes Ziel ... heute musste ich ein weiteres Flag hinzufügen, damit es funktioniert: --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
Verwenden Sie auf einem Windows-PC eine ältere Version von Chrome. Der Befehl funktioniert für alle Benutzer. Ich habe mein Chrome auf die Version 26 heruntergestuft und es hat funktioniert.
Ich verwende dies manchmal, um eine Localhost-Front-End-Site an eine Localhost-Back-End-API zu senden (z. B. Reagieren auf eine alte .NET-API). Ich habe auf meinem Windows 10-Desktop eine eigene Verknüpfung erstellt, sodass sie niemals für das normale Surfen verwendet wird, sondern nur für das lokale Debuggen. Ich habe folgendes gemacht: -
"[PATH_TO_CHROME]\chrome.exe" --disable-web-security
hinzu.Beim Laden dieses Browsers erhalten Sie eine Warnung, dass es nicht sicher ist. Achten Sie nur darauf, was Ihr Browser darauf zeigt. Ich neige dazu, diese neue Verknüpfung auf dem Desktop umzubenennen, etwas in Großbuchstaben, und entferne sie von meinen anderen Symbolen, sodass sie für normales Chrome nicht verwirrt werden kann.
Hoffe das hilft!
Rufen Sie diese Seite auf und deaktivieren Sie die Domänensicherheitsrichtlinie für Ihre Website-Domain.
chrome://net-internals/#hsts
Das Allow-Control-Allow-Origin-Plugin für Chrome funktioniert nicht. Dies ist für MacOS
Ich habe meinem .profile alias chrome='open -n -a /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --user-data-dir --disable-web-security'
als Alias hinzugefügt.
Die anderen Befehle deaktivieren meine anderen Erweiterungen und dies startet Ihr normales chrome mit deaktivierten cors