Есть ли способ отключить политику того же происхождения в браузере Google Chrome ?
peter.sh
страницу, поэтому должно быть вполне законно.
--disable-web-security --user-data-dir
Есть ли способ отключить политику того же происхождения в браузере Google Chrome ?
peter.sh
страницу, поэтому должно быть вполне законно.
--disable-web-security --user-data-dir
Ответы:
Закройте хром (или хром) и перезапустите с --disable-web-security
аргументом. Я только что проверил это и подтвердил, что могу получить доступ к содержимому iframe с помощью встроенной в страницу src = "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
open /Applications/Google\ Chrome.app --args --disable-web-security
--user-data-dir
.
Ага. Для OSX откройте терминал и запустите:
$ open -a Google\ Chrome --args --disable-web-security --user-data-dir
- Требуется -user-data-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. Стабильность и безопасность пострадают.
Однако вы можете просто игнорировать это сообщение при разработке.
--disable-web-security
не работает, если вы также явно не дадите --user-data-dir
. то есть OSX /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-security --user-data-dir=~/ChromeUserData/
.
open -n
. Просто беги open -n -a Google\ Chrome --args --disable-web-security --user-data-dir=/tmp/chrome
. Откроется второй экземпляр приложения Chrome на вашем Mac, и вы сможете использовать их бок о бок.
Для пользователей Windows:
Проблема с решением, принятым здесь, на мой взгляд, заключается в том, что если у вас уже открыт Chrome и попытайтесь запустить его, он не будет работать.
Однако, исследуя это, я наткнулся на сообщение о супер-пользователе, возможно ли запускать Chrome одновременно и без веб-безопасности? ,
По сути, запустив следующую команду (или создав с ней ярлык и открыв Chrome через него)
chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security
Вы можете открыть новый «небезопасный» экземпляр Chrome одновременно с тем, чтобы другие «защищенные» экземпляры браузера оставались открытыми и работали в обычном режиме.
Важно : удаляйте / очищайте 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"
open -a Google\ Chrome --args --disable-web-security -–allow-file-access-from-files --user-data-dir="/Users/myuser/temp/chromeData"
, это просто заставило существующее окно Chrome получить фокус, больше ничего?
open -n -a /Applications/Google\ Chrome.app --args --user-data-dir="/tmp/chrome_dev_session" --disable-web-security
(Возможно, вам сначала потребуется создать временную папку)
Для 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 с отключенной веб-безопасностью должен открыться со следующим сообщением:
Run
.
Для пользователей Windows с версиями Chrome 60.0.3112.78 (день, когда решение было протестировано и работало) и, по крайней мере, до сегодняшнего дня 19.01.2019 (версия 71.0.3578.98) . Вам не нужно закрывать любой экземпляр Chrome.
ВНИМАНИЕ! НЕ ИСПОЛЬЗУЙТЕ ЭТОТ ОСОБЫЙ ИНСТРУМЕНТ БРАУЗЕРА ДЛЯ ПРОСМОТРА, ПОТОМУ ЧТО ВЫ МОЖЕТЕ ПОЛУЧИТЬ ЕГО!
РЕДАКТИРОВАТЬ 3: Кажется, что расширение больше не существует ... Обычно, чтобы обойти CORS в эти дни, я установил другую версию Chrome с отдельным каталогом, или я использую Firefox с https://addons.mozilla.org/en-US/ Firefox / Аддон / Корс-везде / вместо.
РЕДАКТИРОВАТЬ 2: я больше не могу заставить это работать последовательно.
РЕДАКТИРОВАТЬ: Я пытался использовать только на днях для другого проекта, и он перестал работать. Деинсталляция и переустановка расширения исправили его (для сброса настроек по умолчанию).
Оригинальный ответ:
Я не хотел перезапускать Chrome и отключать мою веб-безопасность (потому что я просматривал во время разработки) и наткнулся на это расширение Chrome.
По сути, это небольшой тумблер для включения и выключения проверки Allow-Access-Origin-Control. У меня отлично работает то, что я делаю.
--disable-web-security
переключателя в этом случае.
--allow-file-access-from-files
вместо отключения всей веб-безопасности.
Кажется, ни одно из вышеперечисленных решений на самом деле не работает. Не повреждает-веб-безопасность больше не поддерживается в последних версиях хрома.
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 не может удовлетворить мое требование.
Поэтому я решил разработать свою собственную версию corsproxy с помощью nodejs. Это на самом деле очень просто. Я опубликовал это как GIST на GitHub. Вот суть исходного кода: https://gist.github.com/jianwu/8e76eaec95d9b1300c59596fbfc21b10
Чтобы запустить сервер CORSProxy (http-порт 8080): узел static_server.js 8080
для доступа к прокси: http: // host: 8080 / http: //www.somesite.com
Для Windows ... создайте ярлык Chrome на рабочем столе.
Щелкните правой кнопкой мыши> свойства> Ярлык
Изменить путь к цели:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --args --disable-web-security
(Измените «C: .... \ chrome.exe» на то место, где находится ваш 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. Измените локальный URL-адрес на свой.
Я считаю, что лучший способ сделать это - скопировать ярлык 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"
используя текущую последнюю версию Chrome (83.0.4103.61 (Официальная сборка) (64-разрядная версия)), единственный способ заставить его работать в моем тесте - запустить Chrome с использованием следующих флагов (измените D: \ temp по своему вкусу) , Это решение запустит Chrome как песочницу для тестов и не повлияет на основной профиль Chrome:
--disable-site-изоляция-испытания --disable-web-security --user-data-dir = "D: \ temp"
в окнах нажмите кнопку «Пуск», затем скопируйте и вставьте ниже:
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"
на run
окнах на окнах 10. Большое спасибо.
Вы можете использовать этот плагин 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
Не делай этого! Вы открываете свои счета для атак . После этого любой сторонний сайт может начать отправлять запросы на другие сайты, на которые вы вошли.
Вместо этого запустите локальный сервер. Это так же просто, как открыть оболочку / терминал / командную строку и набрать
cd path/to/files
python -m SimpleHTTPServer
Затем укажите ваш браузер на
http://localhost:8000
Если вы обнаружите, что это слишком медленно, рассмотрите это решение
Люди, голосующие против этого ответа, должны пойти сюда и понизить этот ответ, чтобы быть последовательным. Понятия не имею, почему мой ответ так недооценен, и тот же самый ответ здесь - самый популярный.
Вы будете открывать себя для атак. Каждый сторонний скрипт, который вы добавляете на свой сайт удаленно или локально, например, через npm, теперь может загружать ваши данные или украсть ваши учетные данные. Вы делаете то, что вам не нужно делать. Предлагаемое решение не сложно, занимает 30 секунд, не оставляет открытой атаки. Почему вы решили сделать себя уязвимым, если лучше сделать это так просто?
Говорить людям об отключении безопасности - это все равно, что говорить друзьям, чтобы они оставляли входную дверь незапертой и / или ключ под ковриком. Конечно, шансы могут быть низкими, но если они действительно будут ограблены, без доказательства принудительного въезда им может быть трудно собрать страховку. Точно так же, если вы отключаете безопасность, вы делаете это отключение безопасности . Это безответственно делать, когда вы можете решить проблему так просто, без отключения безопасности. Я был бы удивлен, если бы вы не могли быть уволены в некоторых компаниях за отключение безопасности.
Вы можете просто использовать это расширение Chrome Allow-Control-Allow-Origin
просто нажмите на значок extensnion, чтобы включить или выключить кросс-ресурсный доступ, как вы хотите
ТОЛЬКО ДЛЯ MAC USER
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 в другой сессии. Таким образом, вам не нужно беспокоиться о закрытии всех открытых на данный момент вкладок, а также вы можете продолжать безопасно просматривать веб-страницы с помощью исходного сеанса 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
В Linux-Ubuntu, чтобы запустить одновременно обычный сеанс и небезопасный сеанс, выполните следующую команду:
google-chrome --user-data-dir=/tmp --disable-web-security
для пользователей Mac:
open -a "Google Chrome" --args --disable-web-security --user-data-dir
и до Chrome 48 вы могли просто использовать:
open -a "Google Chrome" --args --disable-web-security
Существует расширение Chrome, которое называется CORS Toggle.
Нажмите здесь, чтобы получить доступ к нему и добавить его в Chrome .
После добавления переключите его во включенное положение, чтобы разрешить междоменные запросы.
это постоянно движущаяся цель .... сегодня мне нужно было добавить еще один флаг, чтобы заставить его работать:
--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:
(используя Windows 8.1, Chrome 44.0 )
Сначала закройте Google Chrome.
Затем откройте командную строку и перейдите в папку, где находится «chrome.exe».
( for me: 'chrome.exe' is here "C:\Program Files (x86)\Google\Chrome\Application".
Так типа I:
cd C:\Program Files (x86)\Google\Chrome\Application
)
сейчас наберите: chrome.exe --disable-web-security
Откроется новое окно Chrome.
Используемая ниже команда в Ubuntu для запуска Chrome (отключите ту же политику происхождения и откройте Chrome в отдельном режиме):
nohup google-chrome --disable-web-security --user-data-dir='/tmp' &
В Windows:
1) Создайте новый ярлык:
2) Вставьте следующий путь:
"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) На следующей странице введите:
Unsafe Chrome.exe
Теперь у вас на рабочем столе небезопасный хром, который можно использовать для отладки приложений CORS. Надеюсь, что этот графический ответ поможет некоторым людям!
Попробуйте перейти на эту страницу и отключить политику безопасности домена для домена вашего сайта.
chrome://net-internals/#hsts
Input a domain name to delete its dynamic domain security policies (HSTS and Expect-CT). (You cannot delete preloaded entries.):
.