Как отключить политику одинакового происхождения в Chrome v81?

Вопрос или проблема

Раньше всё работало, но с последним обновлением Chrome (версия 81) я не могу войти в свою веб-программу локально.

Ошибка в консоли:

Не удалось загрузить ресурс: net::ERR_CONNECTION_RESET

Fiddler говорит, что это ошибка 504 Receive Failure error.

Я недавно столкнулся с этой проблемой и обнаружил, что её вызвало расширение “Adblock” (моя лучшая догадка заключается в том, что это произошло из-за наличия слов “banner” и “ad” в названии файла).

Чтобы быстро проверить, является ли это вашей проблемой, запустите Chrome в режиме инкогнито с отключенными расширениями (ctrl+shift+n) и посмотрите, работает ли теперь ваша страница. Обратите внимание, что по умолчанию все расширения уже будут отключены в режиме инкогнито, если вы специально не настроили их на запуск (через chrome://extensions).

ИЛИ

Для отключения политики того же источника:

Закройте Chrome (или Chromium) и перезапустите с аргументом --disable-web-security. Я только что проверил это и убедился, что могу получить доступ к содержимому фрейма с src=”http://google.com”, встроенному в страницу, предоставленную с “localhost” (проверено под Chromium 5 / Ubuntu). Для меня точная команда была:

Примечание: завершите все процессы Chrome перед выполнением команды

chromium-browser --disable-web-security --user-data-dir="[some directory here]"

Браузер предупредит вас о том, что “вы используете неподдерживаемую командную строку”, когда он откроется в первый раз, что можно игнорировать.

Из исходного кода Chromium:

// Не применять политику того же источника. (Используется людьми, тестирующими свои сайты.)
const wchar_t kDisableWebSecurity[] = L"disable-web-security";

До Chrome 48 вы могли просто использовать:

chromium-browser --disable-web-security

Ответ или решение

Вопрос о том, как отключить политику того же происхождения (Same Origin Policy) в Chrome версии 81, заслуживает подробного анализа, так как данное действие может иметь серьёзные последствия для безопасности вашего браузера и компьютера. Важно понимать, что политика того же происхождения — это мера безопасности, которую браузеры используют для ограничения взаимодействия скриптов, загруженных из разных источников. Основное её предназначение — предотвратить атаки типа Cross-Origin, которые могут привести к доступу злоумышленников к конфиденциальным данным.

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

Теория

Команда --disable-web-security, которую вы можете использовать в командной строке Chrome, отключает политику ограничения доступа к ресурсам из разных источников. Когда вы используете эту команду, браузер перестаёт применять определённые меры безопасности для защиты данных, и вы, как разработчик, можете видеть, как работает ваш код с ресурсами из различных источников.

Пример

Предположим, у вас есть веб-приложение, которое загружает контент из внешнего источника, например, делает запрос к API другого домена. Когда вы запускаете приложение в локальной среде, браузер блокирует такие запросы, и вы получаете сообщения об ошибках в консоли, подобные Failed to load resource: net::ERR_CONNECTION_RESET. Для обхода данной проблемы можно временно отключить политику того же происхождения.

Для этого:

  1. Закройте все экземпляры браузера Chrome.
  2. Откройте командную строку или терминал.
  3. Выполните следующую команду:

    chrome.exe --disable-web-security --user-data-dir="[каталог]"

Где [каталог] — это любая существующая директория на вашем компьютере, куда браузер будет сохранять данные сессии. Например: C:\temp\chrome.

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

Применение

Важно отметить, что запуск браузера с отключенной защитой не предназначен для повседневного использования, особенно в сети. Это — временное решение, ориентированное исключительно на разработчиков, которым необходимо проверить функциональность своих приложений в условиях, максимально приближённых к реальным. Настоятельно рекомендуется отключить это состояние после того, как вы завершите тестирование, и никогда не использовать его при посещении ненадёжных сайтов.

Если проблема осталась даже после отключения web-security, обратите внимание на расширения вашего браузера. Как было указано, некоторые из них, например Adblock, могут блокировать ресурсы, исходя из ключевых слов вроде "banner" и "ad" в именах файлов. Простой способ проверить это — запустить Chrome в режиме инкогнито (Ctrl + Shift + N), где все расширения по умолчанию отключены. Если приложение работает в этом режиме, проблема может заключаться в одном из активных расширений.

Использование --disable-web-security подходит только для разработчиков, кто осознаёт риски и знает, как с ними справляться. В обычной практике решение проблем с кросс-доменными запросами должно проходить через разработку правильных серверных CORS-заголовков и иных легитимных способов обеспечения взаимодействия между системами. Это улучшает безопасность, повышает надёжность приложений и делает практику разработки более соответствующей современным стандартам безопасности в Интернете.

Оцените материал
Добавить комментарий

Капча загружается...