Czy jest jakiś sposób na wyłączenie zasady tego samego pochodzenia w przeglądarce Google Chrome ?
peter.sh
strony, więc musi być całkiem uzasadniona.
--disable-web-security --user-data-dir
Czy jest jakiś sposób na wyłączenie zasady tego samego pochodzenia w przeglądarce Google Chrome ?
peter.sh
strony, więc musi być całkiem uzasadniona.
--disable-web-security --user-data-dir
Odpowiedzi:
Zamknij chrome (lub chrome) i uruchom ponownie z --disable-web-security
argumentem. Właśnie to przetestowałem i zweryfikowałem, że mogę uzyskać dostęp do zawartości iframe za pomocą src = „http://google.com” osadzonego na stronie obsługiwanej z „localhost” (testowane pod chromem 5 / ubuntu). Dla mnie dokładne polecenie brzmiało:
Uwaga: Zabij wszystkie instancje chrome przed uruchomieniem polecenia
chromium-browser --disable-web-security --user-data-dir="[some directory here]"
Przeglądarka wyświetli ostrzeżenie, że „korzystasz z nieobsługiwanego wiersza polecenia”, gdy jest otwierany po raz pierwszy, co możesz zignorować.
Ze źródła chromu:
// Don't enforce the same-origin policy. (Used by people testing their sites.)
const wchar_t kDisableWebSecurity[] = L"disable-web-security";
Przed Chrome 48 możesz po prostu użyć:
chromium-browser --disable-web-security
open /Applications/Google\ Chrome.app --args --disable-web-security
--user-data-dir
.
Tak. W systemie OSX otwórz Terminal i uruchom:
$ open -a Google\ Chrome --args --disable-web-security --user-data-dir
- Wymagany katalog-danych-użytkownika w Chrome 49+ w OSX
W przypadku systemu Linux:
$ google-chrome --disable-web-security
Również jeśli próbujesz uzyskać dostęp do lokalnych plików do celów programistycznych, takich jak AJAX lub JSON, możesz również użyć tej flagi.
-–allow-file-access-from-files
W systemie Windows przejdź do wiersza polecenia i przejdź do folderu, w którym znajduje się Chrome.exe, i wpisz
chrome.exe --disable-web-security
To powinno wyłączyć tę samą zasadę pochodzenia i umożliwić dostęp do plików lokalnych.
Aktualizacja: w przypadku przeglądarki Chrome 22+ zostanie wyświetlony komunikat o błędzie:
Używasz nieobsługiwanej flagi wiersza polecenia: --disable-web-security. Ucierpi na tym stabilność i bezpieczeństwo.
Możesz jednak zignorować tę wiadomość podczas opracowywania.
--disable-web-security
nie działa, chyba że wyraźnie też dasz --user-data-dir
. tj /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-security --user-data-dir=~/ChromeUserData/
. OSX .
open -n
. Po prostu biegnij open -n -a Google\ Chrome --args --disable-web-security --user-data-dir=/tmp/chrome
. Spowoduje to otwarcie drugiej instancji aplikacji Chrome na komputerze Mac i możesz z nich korzystać obok siebie.
Dla użytkowników systemu Windows:
Moim zdaniem problem z przyjętym rozwiązaniem polega na tym, że jeśli masz już otwartego Chrome i spróbuj go uruchomić, to nie zadziała.
Jednak podczas badania tego natknąłem się na post na stronie Super User. Czy możliwe jest jednoczesne uruchamianie Chrome z zabezpieczeniami internetowymi i bez nich? .
Zasadniczo przez uruchomienie następującego polecenia (lub utworzenie skrótu za jego pomocą i otwarcie Chrome przez to)
chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security
możesz otworzyć nowe „niezabezpieczone” wystąpienie Chrome, jednocześnie utrzymując inne „bezpieczne” wystąpienia przeglądarki otwarte i działające normalnie.
Ważne : usuń / wyczyść C:/Chrome dev session
folder za każdym razem, gdy otwierasz okno, ponieważ drugi raz --disable-web-security
nie zadziała. Nie możesz więc zapisać swoich zmian, a następnie otworzyć go ponownie jako drugiej niepewnej instancji Chrome za pomocą --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"
open -a Google\ Chrome --args --disable-web-security -–allow-file-access-from-files --user-data-dir="/Users/myuser/temp/chromeData"
, po prostu sprawił, że istniejące okno Chrome zyskało ostrość, nic więcej?
open -n -a /Applications/Google\ Chrome.app --args --user-data-dir="/tmp/chrome_dev_session" --disable-web-security
(Być może trzeba najpierw utworzyć folder tymczasowy)
W systemie Windows :
Wykonaj następujące polecenie:
chrome.exe --user-data-dir="C://Chrome dev session" --disable-web-security
Dla komputerów Mac :
Wykonaj następujące polecenie:
open /Applications/Google\ Chrome.app --args --user-data-dir="/var/tmp/Chrome dev session" --disable-web-security
Nowa przeglądarka Chrome z wyłączonymi zabezpieczeniami internetowymi powinna zostać otwarta z następującym komunikatem:
Run
.
Dla użytkowników systemu Windows z wersjami Chrome 60.0.3112.78 (dzień przetestowania i działania rozwiązania) i przynajmniej do dziś 19.01.2019 (wer. 71.0.3578.98) . Państwo nie trzeba zamykać żadnej instancji Chrome.
UWAŻAJ, ABY NIE UŻYWAĆ TEJ SZCZEGÓLNEJ INSTALACJI PRZEGLĄDARKI DO PRZEGLĄDANIA, PONIEWAŻ MOŻESZ BYĆ HAKOWANY!
EDYCJA 3: Wygląda na to, że rozszerzenie już nie istnieje ... Zwykle w celu obejścia CORS obecnie konfiguruję inną wersję Chrome z osobnym katalogiem lub używam Firefoxa z https://addons.mozilla.org/en-US/ firefox / addon / cors-everywhere / zamiast.
EDYCJA 2: Nie mogę już tego konsekwentnie działać.
EDYCJA: Próbowałem użyć innego dnia do innego projektu i przestał działać. Odinstalowanie i ponowne zainstalowanie rozszerzenia naprawiło go (aby zresetować ustawienia domyślne).
Oryginalna odpowiedź:
Nie chciałem ponownie uruchamiać Chrome i wyłączać zabezpieczeń internetowych (ponieważ przeglądałem podczas programowania) i natknąłem się na to rozszerzenie Chrome.
Zasadniczo jest to mały przełącznik do włączania i wyłączania kontroli Allow-Access-Origin-Control. Działa idealnie dla mnie do tego, co robię.
--disable-web-security
W takim przypadku trzymaj się przełącznika.
--allow-file-access-from-files
zamiast wyłączać wszystkie zabezpieczenia sieciowe.
Wygląda na to, że żadne z powyższych rozwiązań nie działa. --Disable-web-bezpieczeństwo nie jest już obsługiwana w nowszych wersjach chromowanych.
Allow-Control-Allow-Origin: * - rozszerzenie chrome częściowo rozwiązało problem. Działa tylko wtedy, gdy żądanie korzysta z metody GET i nie ma niestandardowego nagłówka HTTP. W przeciwnym razie chrome wyśle OPCJE żądanie HTTP jako żądanie przed lotem. Jeśli serwer nie obsługuje CORS, odpowie kodem stanu 404 HTTP. Wtyczka nie może modyfikować kodu statusu odpowiedzi HTTP. Chrom odrzuci więc tę prośbę. Wtyczka chrome nie może modyfikować kodu stanu odpowiedzi HTTP w oparciu o bieżące rozszerzenie API chrome. Nie można również wykonać przekierowania dla żądania zainicjowanego przez XHR.
Nie jestem pewien, dlaczego Chrome sprawia, że życie programistów jest tak trudne. Blokuje wszystkie możliwe sposoby wyłączania sprawdzania bezpieczeństwa XSS, nawet na potrzeby programowania, co jest całkowicie niepotrzebne.
Po wielu dniach zmagań i badań jedno rozwiązanie działa dla mnie idealnie: używać corsproxy . Masz tutaj dwie opcje: 1. użyj [ https://cors-anywhere.herokuapp.com/] 2. zainstaluj corsproxy w lokalnym polu: npm install -g corsproxy
[Zaktualizowano 23 czerwca 2018 r.] Niedawno opracowuję aplikację SPA, która musi ponownie korzystać z corsproxy. Ale wygląda na to, że żaden z Corsproxy na githubie nie spełni moich wymagań.
Postanawiam więc opracować własną wersję corsproxy z nodejs. To jest naprawdę bardzo proste. Opublikowałem go jako istotę na githubie. Oto kod źródłowy: https://gist.github.com/jianwu/8e76eaec95d9b1300c59596fbfc21b10
Aby uruchomić serwer CORSProxy (port HTTP 8080): węzeł static_server.js 8080
aby uzyskać dostęp do serwera proxy: http: // host: 8080 / http: //www.somesite.com
W systemie Windows ... utwórz skrót Chrome na pulpicie.
Kliknij prawym przyciskiem myszy> właściwości>
Edytuj ścieżkę „docelową”:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --args --disable-web-security
(Zmień „C: .... \ chrome.exe” na miejsce, w którym zawsze znajduje się twój chrom).
zrobione :)
Wypróbuj to polecenie na terminalu Mac
open -n -a "Google Chrome" --args --user-data-dir=/tmp/temp_chrome_user_data_dir http://localhost:8100/ --disable-web-security
Otwiera kolejną instancję chrome z wyłączonymi zabezpieczeniami i nie ma już problemu z CORS. Ponadto nie musisz już zamykać innych instancji chrome. Zmień adres URL hosta lokalnego na swój.
Uważam, że najlepszym sposobem na to jest skopiowanie skrótu Chrome lub Chrome Canary na pulpicie systemu Windows. Zmień nazwę tego skrótu na „NO CORS”, a następnie edytuj właściwości tego skrótu.
w celu dodaj --disable-web-security --user-data-dir="D:/Chrome"
na końcu ścieżki docelowej.
Twój cel powinien wyglądać mniej więcej tak:
Aktualizacja: Dodano nowe flagi.
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="D:/Chrome"
przy użyciu bieżącej najnowszej wersji chrome (83.0.4103.61 (oficjalna wersja) (64-bit)), jedynym sposobem, aby działał w moim teście, było uruchomienie chrome przy użyciu poniższych flag (zmień D: \ temp na swoje upodobania) . To rozwiązanie uruchomi Chrome jako piaskownicę do testów i nie wpłynie na główny profil chrome:
--disable-site-isolation-trials --disable-web-security --user-data-dir = "D: \ temp"
w systemie Windows kliknij przycisk Start, a następnie skopiuj i wklej poniżej:
chrome.exe --disable-site-isolation-trials --disable-web-security --user-data-dir="D:\temp"
chrome.exe --disable-site-isolation-trials --disable-web-security --user-data-dir="D:\temp"
w run
systemie Windows 10. Bardzo dziękuję.
Możesz użyć tej chromowanej wtyczki o nazwie „Allow-Control-Allow-Origin: *” ... To sprawia, że jest to bardzo prosta i działa bardzo dobrze. sprawdź tutaj: *
W przypadku Selenium Webdriver możesz w tym przypadku uruchomić selen w Chrome z odpowiednimi argumentami (lub „przełącznikami”).
@driver = Selenium::WebDriver.for(:Chrome, {
:detach => false,
:switches => ["--disable-web-security"]
})
Ta wtyczka do Chrome działa dla mnie: Allow-Control-Allow-Origin: * - Chrome Web Store
Nie rób tego! Otwierasz swoje konta na ataki . Po wykonaniu tej czynności dowolna witryna innej firmy może zacząć wysyłać żądania do innych witryn, do których jesteś zalogowany.
Zamiast tego uruchom serwer lokalny. To tak proste, jak otwarcie powłoki / terminalu / linii poleceń i pisanie
cd path/to/files
python -m SimpleHTTPServer
Następnie skieruj przeglądarkę na
http://localhost:8000
Jeśli uznasz, że jest zbyt wolny, rozważ to rozwiązanie
Ludzie głosujący za odpowiedzią na tę odpowiedź powinni przejść tutaj i głosować na tę odpowiedź, aby zachować spójność. Nie mam pojęcia, dlaczego moja odpowiedź jest tak zaniżona, a ta sama odpowiedź tutaj jest najczęściej głosowaną odpowiedzią.
Ci są otwarcie się do ataków. Każdy skrypt innej firmy, który umieścisz na swojej stronie zdalnie lub lokalnie, np. Za pośrednictwem npm, może teraz przesyłać twoje dane lub ukraść twoje dane uwierzytelniające. Robisz coś, czego nie musisz robić. Sugerowane rozwiązanie nie jest trudne, zajmuje 30 sekund, nie pozostawia otwartego ataku. Dlaczego miałbyś się narażać na ataki, skoro lepsza rzecz jest tak prosta?
Mówienie ludziom o wyłączeniu bezpieczeństwa jest jak mówienie znajomym, aby zostawili otwarte drzwi frontowe i / lub klucz pod wycieraczką. Oczywiście szanse mogą być niskie, ale jeśli zostaną włamane, bez dowodu przymusowego wejścia mogą mieć trudności z uzyskaniem ubezpieczenia. Podobnie, jeśli wyłączysz zabezpieczenia , robisz właśnie to wyłączenie bezpieczeństwa . Jest to nieodpowiedzialne, gdy można rozwiązać problem w prosty sposób, bez wyłączania zabezpieczeń. Byłbym zaskoczony, gdybyś nie mógł zostać zwolniony w niektórych firmach za wyłączenie zabezpieczeń.
Możesz po prostu użyć tego chromowanego rozszerzenia Allow-Control-Allow-Origin
wystarczy kliknąć ikonę rozszerzenia, aby włączyć lub wyłączyć udostępnianie między zasobami, jak chcesz
TYLKO DLA UŻYTKOWNIKÓW MAC
open -n -a /Applications/Google\ Chrome.app --args --user-data-dir="/tmp/someFolderName" --disable-web-security
W systemie Windows 10 następujące funkcje będą działać.
<<path>>\chrome.exe --allow-file-access-from-files --allow-file-access --allow-cross-origin-auth-prompt
Postępując zgodnie z odpowiedzią Oli Karlsson, rzeczywiście najlepszym sposobem byłoby otwarcie niebezpiecznego Chrome w innej sesji. W ten sposób nie musisz się martwić zamknięciem wszystkich aktualnie otwartych kart, a także możesz bezpiecznie surfować po Internecie dzięki oryginalnej sesji Chrome.
Te pliki wsadowe powinny po prostu działać w systemie Windows.
Umieść go w pliku Chrome_CORS.bat, aby ułatwić korzystanie z niego
start "" "c:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir="c:/_chrome_dev" --disable-web-security
Ten jest dla 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
W systemie Linux-Ubuntu, aby jednocześnie uruchomić normalną sesję i sesję niebezpieczną, uruchom następującą komendę:
google-chrome --user-data-dir=/tmp --disable-web-security
dla użytkowników komputerów Mac:
open -a "Google Chrome" --args --disable-web-security --user-data-dir
a przed Chrome 48 możesz po prostu użyć:
open -a "Google Chrome" --args --disable-web-security
Istnieje rozszerzenie Chrome o nazwie CORS Toggle.
Kliknij tutaj, aby uzyskać do niego dostęp i dodać go do Chrome .
Po dodaniu przełącz go na pozycję włączoną, aby zezwolić na żądania między domenami.
Dla Windowsa:
(przy użyciu Windows 8.1, chrome 44.0 )
Najpierw zamknij Google Chrome.
Następnie otwórz wiersz polecenia i przejdź do folderu, w którym znajduje się „chrome.exe”.
( for me: 'chrome.exe' is here "C:\Program Files (x86)\Google\Chrome\Application".
Tak Typ I:
cd C:\Program Files (x86)\Google\Chrome\Application
)
teraz wpisz: chrome.exe --disable-web-security
otworzy się nowe okno chrome.
Używany poniżej polecenia w Ubuntu do uruchomienia chrome (wyłącz tę samą zasadę pochodzenia i otwórz chrome w trybie odłączonym):
nohup google-chrome --disable-web-security --user-data-dir='/tmp' &
W systemie Windows:
1) Utwórz nowy skrót:
2) Wklej następującą ścieżkę:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" "C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="c:\temp\chrome"
3) Na następnej stronie wpisz:
Unsafe Chrome.exe
Teraz na pulpicie znajduje się niebezpieczny chrome do debugowania aplikacji CORS. Mam nadzieję, że ta graficzna odpowiedź pomoże niektórym ludziom!
Spróbuj przejść do tej strony i wyłączyć zasady zabezpieczeń domeny dla domeny witryny.
chrome://net-internals/#hsts
Input a domain name to delete its dynamic domain security policies (HSTS and Expect-CT). (You cannot delete preloaded entries.):
.