Отключить ту же политику происхождения в Chrome

1284

Есть ли способ отключить Политику одного и того же происхождения в Google Chrome браузер?

Это строго для развития, а не для производства.

  • 1
    Смотрите также peter.sh/experiment/chromium-command-line-switches , я не уверен в его подлинности, но, похоже, это коллекция, созданная автоматическим процессом
  • 1
    chromium.org ссылки на peter.sh страницы, так что должно быть довольно нормально.
Показать ещё 4 комментария
Теги:
google-chrome

27 ответов

889
Лучший ответ

Закройте 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
  • 102
    Как это сделать на OS X?
  • 13
    @ landon9720 см. ответ по ectype .
Показать ещё 28 комментариев
917

Угу. Для 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. Стабильность и безопасность будут страдать.

Однако вы можете просто игнорировать это сообщение при разработке.

  • 6
    Только что попробовал это на ПК (хром 29), и я все еще получаю эти прекрасные Происхождения ***, не позволенные Access ...
  • 23
    @Sam Убедитесь, что вы закрыли все процессы Chrome, а затем повторите попытку. Chrome выдаст предупреждение, если вы сделали это правильно: «Вы используете неподдерживаемый флаг командной строки: --disable-web-security. Стабильность и безопасность пострадают»
Показать ещё 17 комментариев
395

Для пользователей 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.

  • 14
    офигенно спасибо Благодаря этому я смог запустить веб-страницу как независимое приложение "C:\..\chrome.exe" --disable-web-security --user-agent="Android" --user-data-dir="C:/temp-chrome-eng" --app="file:///C:/apps/index.html"
  • 2
    Именно то, что мне было нужно при попытке разработки с использованием API на моей локальной машине.
Показать ещё 8 комментариев
91

Для 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
    

Новый браузер с хроматическим отключением веб-безопасности должен открыть следующее сообщение:

Изображение 2165

  • 2
    @ downvoters, пожалуйста, укажите причину понижения, поскольку в ответе нет смысла понижать
  • 1
    У меня хорошо работало на Windows 10, не нужно было закрывать и другие экземпляры Chrome.
Показать ещё 1 комментарий
67

Я не хотел перезапускать 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: я больше не могу заставить это работать последовательно

  • 1
    как я достигаю и интегрируюсь со своим расширением, так как моему расширению необходим доступ к междоменному домену Я не могу заставить пользователя открыть браузер с отключением веб-безопасности
  • 0
    Он позволяет только AJAX-запросам, а не обычным веб-страницам и расширениям, получать доступ к веб-страницам.
Показать ещё 5 комментариев
43

Для пользователей Windows с версиями Chrome 60.0.3112.78 (день, когда решение было протестировано и работало) и, по крайней мере, до сегодняшнего дня 19.01.2019 (версия 71.0.3578.98). Вам не нужно закрывать любой экземпляр Chrome.

  1. Создать ярлык на рабочем столе
  2. Нажмите правой кнопкой мыши на ярлык и выберите Свойства
  3. Изменить свойство Target
  4. Установите для него "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir = "C: /ChromeDevSession"
  5. Запустите Chrome и проигнорируйте сообщение о том, что --disable-web-security не поддерживается!

ВНИМАНИЕ! НЕ ИСПОЛЬЗУЙТЕ ЭТОТ ОСОБЫЙ ИНСТРУМЕНТ БРАУЗЕРА ДЛЯ ПРОСМОТРА, ПОТОМУ ЧТО ВЫ МОЖЕТЕ ПОЛУЧИТЬ ЕГО!

  • 0
    Работал как шарм. Я не могу поверить, что Chrome не позволяет разработчикам отключить это без начала нового сеанса. По крайней мере, у них есть способ, хотя.
  • 0
    и вы все еще можете использовать отладку Chrome в исходном коде?
Показать ещё 3 комментария
41

Для Windows... создайте ярлык Chrome на рабочем столе. Щелкните правой кнопкой мыши > свойствa > Ярлык
Изменить "целевой" путь:

"C:\Program Files\Google\Chrome\Application\chrome.exe" --args --disable-web-security

(Измените "C:....\chrome.exe" там, где когда-либо находился ваш хром).

et voilà:)

  • 0
    На сегодняшний день 27.08.2003 это работает для меня, позволяя мне делать Ajax на моем собственном локальном хосте.
  • 4
    К сожалению, это не работает для меня.
Показать ещё 2 комментария
39

Кажется, что ни одно из вышеперечисленных решений на самом деле не работает. --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 не может удовлетворить мое требование.

  • нужно для запуска внутри брандмауэра по соображениям безопасности. Поэтому я не могу использовать 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.
  • Он также служит статическим файловым сервером.
  • Он также поддерживает запрос перед полетом.
  • 0
    Если вы собираетесь пойти в этом направлении, вы всегда можете просто разместить веб-сервер локально или удаленно, который извлекает контент с желаемой веб-страницы, а затем установить для него надлежащие заголовки CORS.
  • 0
    Я думал об этом маршруте раньше. Но это требует некоторого кодирования, особенно в моем случае, мне нужно вызвать несколько служб, которые происходят из разных доменов. Поэтому я должен сопоставить разные шаблоны URL с разными доменами. Это именно то, что corsproxy сделал для нас. И это работает отлично.
Показать ещё 7 комментариев
33

Я считаю, что лучший способ сделать это - дублировать ярлык 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"

Изображение 2166

  • 0
    Это просто дает мне 404 вместо ошибки перед полетом
  • 0
    Ошибка 404 будет связана с сервером, а не с ошибкой Google Chrome.
Показать ещё 2 комментария
24

Попробуйте эту команду на 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-адрес локального хоста на свой.

18

Вы можете использовать этот chrome-плагин под названием "Allow-Control-Allow-Origin: *"... Это делает его простым и работает очень хорошо. проверьте здесь: *

Изображение 2167

  • 4
    Он устанавливает сайт «evil.com» в качестве источника, выглядит подозрительно.
  • 0
    Больше не функционирует согласно дате этого комментария. Рекомендую просто использовать флаг маршрута.
17

Для Selenium Webdriver вы можете запустить селен в Chrome с соответствующими аргументами (или "переключателями" ) в этом случае.

 @driver = Selenium::WebDriver.for(:Chrome, { 
       :detach => false,
       :switches => ["--disable-web-security"]
    })
  • 1
    это две предшествующие черточки для disable-web-security. В моем браузере они выглядели как одна черта.
  • 0
    Я написал небольшой пост о хром без корс
12

Этот плагин Chrome работает для меня: Allow-Control-Allow-Origin: * - Интернет-магазин Chrome

  • 4
    Этот плагин сломался в моем браузере и начал ломать все вещи XHR. Используйте с осторожностью.
12

Если вы используете Google Chrome в Linux, следующая команда работает.

google-chrome  --disable-web-security
9
chromium-browser --disable-web-security --user-data-dir=~/ChromeUserData/
8

ТОЛЬКО ДЛЯ ПОЛЬЗОВАТЕЛЯ MAC

open -n -a /Applications/Google\ Chrome.app --args --user-data-dir="/tmp/someFolderName" --disable-web-security
  • 0
    как отменить это изменение @saurab
  • 0
    @MohasinAli закройте все окна Chrome и просто запустите его, как обычно. Это влияет только на экземпляр, который вы запускали с этим аргументом. Если вы запустите его снова без каких-либо аргументов, это изменение не будет применено.
8

В Windows 10 будет работать следующее.

<<path>>\chrome.exe --allow-file-access-from-files --allow-file-access --allow-cross-origin-auth-prompt
  • 0
    Я удивлен, что ваш ответ был отклонен. Он работал очень хорошо для меня на локальных файлах с последней версией Chrome.
  • 0
    Я использую Windows 7, и она не работает
Показать ещё 1 комментарий
8

Вы можете просто использовать это расширение chrome Allow-Control-Allow-Origin

просто нажмите на значок расширения, чтобы включить или отключить совместное использование ресурсов, как вы хотите

7

Следуя за ответом Ола Карлссон, действительно лучшим способом было бы открыть небезопасный 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
  • 0
    Это бессмысленное использование командного файла. Ярлык был бы намного лучше для этого. Просто поместите все после первой пары цитат в цель ярлыка.
  • 0
    Это не имеет большого значения. Тем не менее, в пакете вы можете сделать больше вещей, например, удалить user-data-dir после закрытия браузера, например.
Показать ещё 1 комментарий
6

Существует расширение Chrome, называемое CORS Toggle.

Нажмите здесь, чтобы открыть его и добавить в Chrome.

После добавления его, переключите его в положение включения, чтобы разрешить междоменные запросы.

5

для пользователей Mac:

open -a "Google Chrome" --args --disable-web-security --user-data-dir

и до Chrome 48 вы можете просто использовать:

open -a "Google Chrome" --args --disable-web-security
  • 0
    Благодарю. Это работает на последнем Chrome 73, который включал новую политику безопасности CORB.
5

Не делай этого! Вы открываете свои аккаунты для атак. Как только вы сделаете это, любой сторонний сайт может начать выдавать запросы на другие веб-сайты, на которые вы вошли.

Вместо этого запустите локальный сервер. Это так же просто, как открытие оболочки/терминала/командной строки и ввода текста

cd path/to/files
python -m SimpleHTTPServer

Затем наведите свой браузер на

http://localhost:8000

Если вы считаете это слишком медленным, рассмотрите это решение

  • 6
    Это не откроет "вашу машину" для атак. Вредоносный код JavaScript не сможет многое сделать на самом клиентском компьютере. Вы, однако, разрешите вредоносному коду JavaScript потенциально манипулировать вашими учетными записями на других сайтах (facebook / администрации / банки / ...). Это, конечно, не менее опасно, но совершенно другое.
Показать ещё 5 комментариев
3

В Linux- Ubuntu, чтобы запустить одновременно обычный сеанс и небезопасный сеанс, выполните следующую команду:

google-chrome  --user-data-dir=/tmp --disable-web-security
3

Для 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

откроется новое окно хром.

1

это постоянно движущаяся цель.... сегодня мне нужно было добавить еще один флаг, чтобы заставить его работать: --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

1

На ПК с Windows используйте устаревшую версию Chrome, и команда будет работать для всех вас, ребята. Я понизил версию Chrome до версии 26 и работал.

  • 1
    Вам не нужна старая версия chrome, используйте эту полную команду --disable-web-security --user-data-dir = "D: / Chrome"
0

Я иногда использую это для публикации локального сайта localhost в локальном интерфейсе API (например, React to old.NET API). Я создал отдельный ярлык на рабочем столе Windows 10, так что он никогда не используется для обычного просмотра, только для отладки локально. Я сделал следующее: -

  • Щелкните правой кнопкой мыши на рабочем столе, добавьте новый ярлык
  • Добавить цель как "[PATH_TO_CHROME]\chrome.exe" --disable-web-security
  • Нажмите "ОК".

При загрузке этого браузера вы получите предупреждение о том, что оно небезопасно, просто позаботьтесь о том, что вы используете на нем. Я обычно переименовываю этот новый ярлык на рабочий стол, что-то в столице, и отключаю его от других моих значков, поэтому его нельзя путать для обычного Chrome.

Надеюсь, это поможет!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню