Есть ли способ отключить политику одного и того же происхождения в браузере Google Chrome?
Отключить такую же политику происхождения в Chrome
Ответ 1
Закройте chrome (или chromium) и перезапустите с помощью аргумента --disable-web-security
. Я просто проверил это и подтвердил, что я могу получить доступ к содержимому iframe с помощью src= "http://google.com", встроенного в страницу, обслуживаемую с "localhost" (протестирован под хром 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
Ответ 2
Угу. Для OSX откройте терминал и запустите:
$ open -a Google\ Chrome --args --disable-web-security --user-data-dir
- данные пользователя-dir, необходимые для Chrome 49+ в OSX
Для запуска 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. Стабильность и безопасность будут страдать.
Однако вы можете просто игнорировать это сообщение при разработке.
Ответ 3
Для пользователей Windows:
Проблема с решением, принятым здесь, на мой взгляд, заключается в том, что если у вас уже открыт Chrome и вы пытаетесь запустить его, он не будет работать.
Однако, исследуя это, я наткнулся на сообщение о супер-пользователе, возможно ли запускать Chrome одновременно и без веб-безопасности? ,
По сути, запустив следующую команду (или создав с ней ярлык и открыв Chrome через него)
chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security
Вы можете открыть новый "небезопасный" экземпляр Chrome одновременно с тем, чтобы другие "защищенные" экземпляры браузера оставались открытыми и работали в обычном режиме. Важно: удаляйте /C: /Chrome dev session
папку C: /Chrome dev session
каждый раз, когда вы открываете окно во второй раз, --disable-web-security
не будет работать. Таким образом, вы не можете сохранить свои изменения и затем снова открыть их как второй небезопасный экземпляр Chrome с --disable-web-security
.
Ответ 4
Для Windows:
- Откройте меню "Пуск"
- Введите windows + R или откройте "Выполнить"
-
Выполните следующую команду:
chrome.exe --user-data-dir="C://Chrome dev session" --disable-web-security
Для Mac:
- Перейдите в терминал
-
Выполните следующую команду:
open /Applications/Google\ Chrome.app --args --user-data-dir="/var/tmp/Chrome dev session" --disable-web-security
Новый браузер с хроматическим отключением веб-безопасности должен открыть следующее сообщение:
Ответ 5
Я не хотел перезапускать Chrome и отключать свою веб-безопасность (потому что я просматривал во время разработки) и наткнулся на это расширение Chrome.
В основном это небольшой тумблер для включения и выключения проверки Allow-Access-Origin-Control. Отлично работает для меня за то, что я делаю.
ОБНОВЛЕНИЕ: Я пытался использовать только на днях для другого проекта, и он перестал работать. Удаление и переустановка расширения исправили его (для сброса настроек по умолчанию).
ОБНОВЛЕНИЕ 2: я больше не могу заставить это работать последовательно
Ответ 6
Для пользователей Windows с версиями Chrome 60.0.3112.78 (день, когда решение было протестировано и работало) и, по крайней мере, до сегодняшнего дня 19.01.2019 (версия 71.0.3578.98). Вам не нужно закрывать любой экземпляр Chrome.
- Создать ярлык на рабочем столе
- Нажмите правой кнопкой мыши на ярлык и выберите Свойства
- Изменить свойство Target
- Установите для него "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir = "C: /ChromeDevSession"
- Запустите Chrome и проигнорируйте сообщение о том, что --disable-web-security не поддерживается!
ВНИМАНИЕ! НЕ ИСПОЛЬЗУЙТЕ ЭТОТ ОСОБЫЙ ИНСТРУМЕНТ БРАУЗЕРА ДЛЯ ПРОСМОТРА, ПОТОМУ ЧТО ВЫ МОЖЕТЕ ПОЛУЧИТЬ ЕГО!
Ответ 7
Кажется, ни одно из вышеперечисленных решений на самом деле не работает. --Disable-web-security больше не поддерживается в последних версиях Chrome.
Allow-Control-Allow-Origin: * - расширение chrome частично решило проблему. Это работает только в том случае, если ваш запрос использует метод GET и нет пользовательского заголовка HTTP. В противном случае chrome отправит HTTP-запрос OPTIONS в качестве запроса перед полетом. Если сервер не поддерживает CORS, он ответит кодом состояния 404 HTTP. Плагин не может изменить HTTP-код ответа. Таким образом, Chrome отклонит этот запрос. Плагин Chrome не может изменить HTTP-код ответа на основе текущего API расширения Chrome. И вы не можете также выполнить перенаправление для запроса, инициированного XHR.
Не уверен, почему Chrome делает жизнь разработчиков настолько сложной. Он блокирует все возможные способы отключить проверку безопасности XSS даже для использования в разработке, что совершенно не нужно.
После нескольких дней борьбы и исследований, одно решение отлично работает для меня: использовать corsproxy. У вас есть два варианта: 1. использовать [ https://cors-anywhere.herokuapp.com/] 2. установить corsproxy в локальном окне: npm install -g corsproxy
[Обновлено 23 июня 2018 г.] Недавно я занимаюсь разработкой приложения SPA, в котором нужно снова использовать corsproxy. Но, похоже, ни один из corsproxy на github не может удовлетворить мое требование.
- нужно для запуска внутри брандмауэра по соображениям безопасности. Поэтому я не могу использовать https://cors-anywhere.herokuapp.com/.
- Он должен поддерживать https, поскольку chrome блокирует ajax-запрос no-https на странице https.
- Мне нужно работать на nodejs. Я не хочу поддерживать другой языковой стек.
Поэтому я решил разработать свою собственную версию corsproxy с помощью nodejs. Это на самом деле очень просто. Я опубликовал это как GIST на GitHub. Вот суть исходного кода: https://gist.github.com/jianwu/8e76eaec95d9b1300c59596fbfc21b10
- Это в простом коде nodejs без каких-либо дополнительных зависимостей
- Вы можете работать в режимах http и https (передавая номер порта https в командной строке), чтобы запустить https, вам нужно сгенерировать сертификат и ключ и поместить их в каталог webroot.
- Он также служит статическим файловым сервером.
- Он также поддерживает запрос перед полетом.
Чтобы запустить сервер CORSProxy (http-порт 8080): узел static_server.js 8080
для доступа к прокси: http://host: 8080/http://www.somesite.com
Ответ 8
Для Windows... создайте ярлык Chrome на рабочем столе.
Щелкните правой кнопкой мыши > свойствa > Ярлык
Изменить "целевой" путь:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --args --disable-web-security
(Измените "C:....\chrome.exe" там, где когда-либо находился ваш хром).
et voilà:)
Ответ 9
Попробуйте эту команду на Mac terminal-
open -n -a "Google Chrome" --args --user-data-dir=/tmp/temp_chrome_user_data_dir http://localhost:8100/ --disable-web-security
Он открывает еще один экземпляр хрома с отключенной безопасностью и больше нет проблемы с CORS. Кроме того, вам больше не нужно закрывать другие экземпляры chrome. Измените URL-адрес локального хоста на свой.
Ответ 10
Я считаю, что лучший способ сделать это - дублировать ярлык Chrome или Chrome Canary на рабочем столе Windows. Переименуйте этот ярлык в "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"
Ответ 11
Вы можете использовать этот chrome-плагин под названием "Allow-Control-Allow-Origin: *"... Это делает его простым и работает очень хорошо. проверьте здесь: *
Ответ 12
Для Selenium Webdriver вы можете запустить селен в Chrome с соответствующими аргументами (или "переключателями" ) в этом случае.
@driver = Selenium::WebDriver.for(:Chrome, {
:detach => false,
:switches => ["--disable-web-security"]
})
Ответ 13
используя текущую последнюю версию Chrome (76.0.3809.132 (Официальная сборка) (64-разрядная версия)), единственный способ заставить его работать в моем тесте - запустить Chrome с использованием следующих флагов (измените D:\temp по вкусу):
--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"
Ответ 14
Не делайте этого! Выоткрываете свои аккаунты для атак. После этого любой сторонний сайт может начать отправлять запросы на другие сайты, на которые вы вошли.
Вместо этого запустите локальный сервер. Это так же просто, как открыть оболочку/терминал/командную строку и набрать
cd path/to/files
python -m SimpleHTTPServer
Затем укажите свой браузер на
http://localhost:8000
Если вам кажется, что это слишком медленно , подумайте над этим решением
Обновление
Люди, голосующие против этого ответа, должны перейти сюда и понизить этот ответ тоже, чтобы быть последовательными. Не знаю, почему мой ответ так недооценен, и тот же ответ, что и здесь, является самым популярным.
Вы are открываете себя для атак. Каждый сторонний скрипт, который вы добавляете на свой сайт удаленно или локально, например, через npm, теперь может загружать ваши данные или украсть ваши учетные данные. Вы делаете то, что вам не нужно делать. Предлагаемое решение не сложно, занимает 30 секунд, не оставляет открытой атаки. Почему вы решили сделать себя уязвимым, если лучше сделать это так просто?
Говорить людям об отключении безопасности - это все равно, что говорить друзьям, чтобы они оставляли входную дверь незапертой и/или ключ под ковриком. Конечно, шансы могут быть низкими, но если они действительно будут ограблены, без доказательства принудительного въезда им может быть трудно собрать страховку. Аналогичным образом, если вы отключаете защиту, вы просто отключаете защиту. Это безответственно делать, когда вы можете решить проблему так просто, без отключения безопасности. Я был бы удивлен, если бы вы не могли быть уволены в некоторых компаниях за отключение безопасности.
Ответ 15
Если вы используете Google Chrome в Linux, следующая команда работает.
google-chrome --disable-web-security
Ответ 16
Этот плагин Chrome работает для меня: Allow-Control-Allow-Origin: * - Интернет-магазин Chrome
Ответ 17
chromium-browser --disable-web-security --user-data-dir=~/ChromeUserData/
Ответ 18
ТОЛЬКО ДЛЯ ПОЛЬЗОВАТЕЛЯ MAC
open -n -a /Applications/Google\ Chrome.app --args --user-data-dir="/tmp/someFolderName" --disable-web-security
Ответ 19
Вы можете просто использовать это расширение chrome Allow-Control-Allow-Origin
просто нажмите на значок расширения, чтобы включить или отключить совместное использование ресурсов, как вы хотите
Ответ 20
В Windows 10 будет работать следующее.
<<path>>\chrome.exe --allow-file-access-from-files --allow-file-access --allow-cross-origin-auth-prompt
Ответ 21
Следуя за ответом Ола Карлссон, действительно лучшим способом было бы открыть небезопасный 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. Canary_CORS.bat
start "" "c:\Users\%USERNAME%\AppData\Local\Google\Chrome SxS\Application\chrome.exe" --user-data-dir="c:/_canary_dev" --disable-web-security
Ответ 22
В Linux- Ubuntu, чтобы запустить одновременно обычный сеанс и небезопасный сеанс, выполните следующую команду:
google-chrome --user-data-dir=/tmp --disable-web-security
Ответ 23
для пользователей Mac:
open -a "Google Chrome" --args --disable-web-security --user-data-dir
и до Chrome 48 вы можете просто использовать:
open -a "Google Chrome" --args --disable-web-security
Ответ 24
Существует расширение Chrome, называемое CORS Toggle.
Нажмите здесь, чтобы открыть его и добавить в Chrome.
После добавления его, переключите его в положение включения, чтобы разрешить междоменные запросы.
Ответ 25
это постоянно движущаяся цель.... сегодня мне нужно было добавить еще один флаг, чтобы заставить его работать: --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
Ответ 26
Для Windows:
(используя окна 8.1, chrome 44.0)
Сначала закройте Google 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 --disable-web-security
откроется новое окно хром.
Ответ 27
Попробуйте перейти на эту страницу и отключить политику безопасности домена для домена вашего сайта.
chrome://net-internals/#hsts
Ответ 28
На ПК с Windows используйте устаревшую версию Chrome, и команда будет работать для всех вас, ребята. Я понизил версию Chrome до версии 26 и работал.
Ответ 29
Я иногда использую это для публикации локального сайта localhost в локальном интерфейсе API (например, React to old.NET API). Я создал отдельный ярлык на рабочем столе Windows 10, так что он никогда не используется для обычного просмотра, только для отладки локально. Я сделал следующее: -
- Щелкните правой кнопкой мыши на рабочем столе, добавьте новый ярлык
- Добавить цель как
"[PATH_TO_CHROME]\chrome.exe" --disable-web-security
- Нажмите "ОК".
При загрузке этого браузера вы получите предупреждение о том, что оно небезопасно, просто позаботьтесь о том, что вы используете на нем. Я обычно переименовываю этот новый ярлык на рабочий стол, что-то в столице, и отключаю его от других моих значков, поэтому его нельзя путать для обычного Chrome.
Надеюсь, это поможет!
Ответ 30
Плагин Allow-Control-Allow-Origin для Chrome не работает. Это для MacOS
Я добавил alias chrome='open -n -a /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --user-data-dir --disable-web-security'
в свой .profile как псевдоним.
Другие команды отключат мои другие расширения, и это загрузит ваш обычный chrome с отключенными cors