Есть ли способ отключить Политику одного и того же происхождения в Google Chrome браузер?
Это строго для развития, а не для производства.
Закройте 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
Угу. Для 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. Стабильность и безопасность будут страдать.
Однако вы можете просто игнорировать это сообщение при разработке.
Для пользователей 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
.
"C:\..\chrome.exe" --disable-web-security --user-agent="Android" --user-data-dir="C:/temp-chrome-eng" --app="file:///C:/apps/index.html"
Для Windows:
Выполните следующую команду:
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
Новый браузер с хроматическим отключением веб-безопасности должен открыть следующее сообщение:
Я не хотел перезапускать Chrome и отключать мою веб-безопасность (потому что я просматривал во время разработки) и наткнулся на это расширение Chrome.
Интернет-магазин Chrome Allow-Control-Allow-Origin: *
(https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en)
В основном это маленький тумблер для включения и выключения проверки Allow-Access-Origin-Control. У меня отлично работает то, что я делаю.
РЕДАКТИРОВАТЬ: я пытался использовать только на днях для другого проекта, и он перестал работать. Деинсталляция и переустановка расширения исправили его (для сброса настроек по умолчанию).
РЕДАКТИРОВАТЬ 2: я больше не могу заставить это работать последовательно
Для пользователей Windows с версиями Chrome 60.0.3112.78 (день, когда решение было протестировано и работало) и, по крайней мере, до сегодняшнего дня 19.01.2019 (версия 71.0.3578.98). Вам не нужно закрывать любой экземпляр Chrome.
ВНИМАНИЕ! НЕ ИСПОЛЬЗУЙТЕ ЭТОТ ОСОБЫЙ ИНСТРУМЕНТ БРАУЗЕРА ДЛЯ ПРОСМОТРА, ПОТОМУ ЧТО ВЫ МОЖЕТЕ ПОЛУЧИТЬ ЕГО!
Для Windows... создайте ярлык Chrome на рабочем столе.
Щелкните правой кнопкой мыши > свойствa > Ярлык
Изменить "целевой" путь:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --args --disable-web-security
(Измените "C:....\chrome.exe" там, где когда-либо находился ваш хром).
et voilà:)
Кажется, что ни одно из вышеперечисленных решений на самом деле не работает. --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. использовать corsproxy.com 2. установить corsproxy в локальном окне: npm install -g corsproxy
[Обновлено 23 июня 2018 г.] Недавно я занимаюсь разработкой приложения SPA, в котором нужно снова использовать corsproxy. Но, похоже, ни один из corsproxy на github не может удовлетворить мое требование.
Поэтому я решил разработать свою собственную версию corsproxy с помощью nodejs. Это на самом деле очень просто. Я опубликовал это как GIST на GitHub. Вот суть исходного кода: https://gist.github.com/jianwu/8e76eaec95d9b1300c59596fbfc21b10
Я считаю, что лучший способ сделать это - дублировать ярлык 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"
Попробуйте эту команду на 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-адрес локального хоста на свой.
Вы можете использовать этот chrome-плагин под названием "Allow-Control-Allow-Origin: *"... Это делает его простым и работает очень хорошо. проверьте здесь: *
Для Selenium Webdriver вы можете запустить селен в Chrome с соответствующими аргументами (или "переключателями" ) в этом случае.
@driver = Selenium::WebDriver.for(:Chrome, {
:detach => false,
:switches => ["--disable-web-security"]
})
Этот плагин Chrome работает для меня: Allow-Control-Allow-Origin: * - Интернет-магазин Chrome
Если вы используете Google Chrome в Linux, следующая команда работает.
google-chrome --disable-web-security
chromium-browser --disable-web-security --user-data-dir=~/ChromeUserData/
ТОЛЬКО ДЛЯ ПОЛЬЗОВАТЕЛЯ MAC
open -n -a /Applications/Google\ Chrome.app --args --user-data-dir="/tmp/someFolderName" --disable-web-security
В Windows 10 будет работать следующее.
<<path>>\chrome.exe --allow-file-access-from-files --allow-file-access --allow-cross-origin-auth-prompt
Вы можете просто использовать это расширение chrome Allow-Control-Allow-Origin
просто нажмите на значок расширения, чтобы включить или отключить совместное использование ресурсов, как вы хотите
Следуя за ответом Ола Карлссон, действительно лучшим способом было бы открыть небезопасный 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
Существует расширение Chrome, называемое CORS Toggle.
Нажмите здесь, чтобы открыть его и добавить в Chrome.
После добавления его, переключите его в положение включения, чтобы разрешить междоменные запросы.
для пользователей Mac:
open -a "Google Chrome" --args --disable-web-security --user-data-dir
и до Chrome 48 вы можете просто использовать:
open -a "Google Chrome" --args --disable-web-security
Не делай этого! Вы открываете свои аккаунты для атак. Как только вы сделаете это, любой сторонний сайт может начать выдавать запросы на другие веб-сайты, на которые вы вошли.
Вместо этого запустите локальный сервер. Это так же просто, как открытие оболочки/терминала/командной строки и ввода текста
cd path/to/files
python -m SimpleHTTPServer
Затем наведите свой браузер на
http://localhost:8000
Если вы считаете это слишком медленным, рассмотрите это решение
В Linux- Ubuntu, чтобы запустить одновременно обычный сеанс и небезопасный сеанс, выполните следующую команду:
google-chrome --user-data-dir=/tmp --disable-web-security
Для 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
откроется новое окно хром.
это постоянно движущаяся цель.... сегодня мне нужно было добавить еще один флаг, чтобы заставить его работать: --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
На ПК с Windows используйте устаревшую версию Chrome, и команда будет работать для всех вас, ребята. Я понизил версию Chrome до версии 26 и работал.
Я иногда использую это для публикации локального сайта localhost в локальном интерфейсе API (например, React to old.NET API). Я создал отдельный ярлык на рабочем столе Windows 10, так что он никогда не используется для обычного просмотра, только для отладки локально. Я сделал следующее: -
"[PATH_TO_CHROME]\chrome.exe" --disable-web-security
При загрузке этого браузера вы получите предупреждение о том, что оно небезопасно, просто позаботьтесь о том, что вы используете на нем. Я обычно переименовываю этот новый ярлык на рабочий стол, что-то в столице, и отключаю его от других моих значков, поэтому его нельзя путать для обычного Chrome.
Надеюсь, это поможет!
peter.sh
страницы, так что должно быть довольно нормально.