Отключить Cors в Chrome

Обновлено: 07.07.2024

Можно ли отключить CORS в Chrome? Я считаю, что лучший способ сделать это — продублировать ярлык Chrome или Chrome Canary на рабочем столе Windows. Переименуйте этот ярлык в «NO CORS», затем отредактируйте свойства этого ярлыка. в целевом файле добавьте --disable-web-security --user-data-dir в конец целевого пути.

Можете ли вы отключить CORS?

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

Кроме того, как избавиться от ошибки политики CORS?

Чтобы исправить CORS, необходимо убедиться, что API отправляет правильные заголовки (Access-Control-Allow-*). Вот почему это не то, что вы можете исправить в пользовательском интерфейсе, и поэтому это вызывает проблему только в браузере, а не через curl: потому что браузер проверяет и в конечном итоге блокирует вызовы.

Как отключить Cors Edge?

Вопрос, связанный с тем, можно ли отключить CORS в Chrome?

Что значит отключить CORS?

Выполнен запрос, требующий использования CORS, но CORS отключен в браузере пользователя. Когда это происходит, пользователю необходимо снова включить CORS в своем браузере. кор. запрещать . Установка значения true отключает CORS, поэтому в любом случае запросы CORS всегда будут завершаться ошибкой с ошибкой.

Отключен ли CORS по умолчанию?

Как отключить строгое происхождение при перекрестном происхождении?

Чтобы отключить политику одного источника или разрешить общий доступ к ресурсам из разных источников в браузерах IE и Edge в Windows, выполните следующие действия: Откройте браузер Internet Explorer. Перейдите в: Инструменты -> Свойства обозревателя -> Безопасность. Выберите зону безопасности «Интернет» и нажмите «Пользовательский уровень»

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

Разрешить CORS: Access-Control-Allow-Origin. Легко добавить правило (Access-Control-Allow-Origin: *) в заголовок ответа. Разрешить CORS: Access-Control-Allow-Origin позволяет легко выполнять междоменные запросы Ajax в веб-приложениях. Просто активируйте надстройку и выполните запрос.

Как исправить источник разрешения Access-Control?

Поскольку заголовок в настоящее время настроен на разрешение доступа только с https://yoursite.com , браузер заблокирует доступ к ресурсу, и вы увидите ошибку в консоли. Теперь, чтобы исправить это, измените заголовки на это: res. setHeader("Access-Control-Allow-Origin", "*");

Почему я получаю сообщение об ошибке CORS?

Был заблокирован политикой CORS Cross origin?

Если конфигурация CORS настроена неправильно, в консоли браузера отобразится сообщение об ошибке, например "Запрос между источниками заблокирован: политика одного и того же источника запрещает чтение удаленного ресурса на $somesite", указывающее на то, что запрос был заблокирован из-за нарушения правила безопасности CORS.

Как исправить ошибку узла в CORS?

Как включить CORS?

Как включить CORS в моем веб-API?

Вы можете включить CORS для каждого действия, для каждого контроллера или глобально для всех контроллеров веб-API в вашем приложении. Чтобы включить CORS для одного действия, установите атрибут [EnableCors] в методе действия. В следующем примере CORS включается только для метода GetItem.

Как отключить CORS в Windows 10?

Использует ли Edge CORS?

Безопасно ли включение CORS?

Это довольно безопасно, но есть способы обойти это. Например, злоумышленник может использовать технику отравления DNS, чтобы заставить предварительный запрос попасть на фактический сервер, но отправить фактический запрос CORS на мошеннический сервер.

Для чего используется CORS?

"CORS" означает совместное использование ресурсов между источниками. Он позволяет отправлять запросы с одного веб-сайта на другой веб-сайт в браузере, что обычно запрещено другой политикой браузера, называемой политикой единого источника (SOP).

Применяется ли CORS только к браузерам?

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

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

Как отключить контроль доступа, разрешающий источник?

Вы можете просто поместить параметр Header set Access-Control-Allow-Origin * в конфигурацию Apache или файл htaccess. Следует отметить, что это эффективно отключает защиту CORS, что, скорее всего, подвергает ваших пользователей атаке.

Как исправить строгое происхождение при перекрестном происхождении Nginx?

Как разрешить междоменные запросы?

Что такое проблема с разными источниками?

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

См. также peter.sh/experiments/chromium-command-line-switches, я не уверен в его подлинности, но похоже, что это коллекция, созданная автоматизированным процессом

34 ответа 34

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

Примечание. Уничтожьте все экземпляры Chrome перед запуском команды

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

Из источника хрома:

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

Начиная с последних версий Chrome (например, у меня версия 92), "--disable-web-security" необходим, но этого недостаточно. Также необходимо использовать "--disable-site-isolation-trials". Смотрите более свежий ответ от @user2576266 ниже. (Обратите внимание, что Chrome по-прежнему будет отображать предупреждение о том, что «--disable-site-isolation-trials» не понят. Это действительно работает.)

для Chrome версии 96 используйте "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --disable-gpu --disable-features=IsolateOrigins,site -per-process --user-data-dir="C://ChromeDev" . просто добавьте --disable-features=IsolateOrigins,site-per-process , см. это

Ага. Для OS X откройте Терминал и выполните:

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

Для Windows откройте командную строку, перейдите в папку, где находится Chrome.exe, и введите

Это должно отключить ту же политику происхождения и разрешить вам доступ к локальным файлам.

Обновление: для Chrome 22+ появится сообщение об ошибке:

Вы используете неподдерживаемый флаг командной строки: --disable-web-security. Стабильность и безопасность пострадают.

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

Если вам нужен существующий каталог пользователей, в MacOS вы можете найти его по адресу: --user-data-dir="/Users//Library/ApplicationSupport/Google/Chrome" . Введите whoami или pwd -P в терминале, чтобы найти свое имя пользователя.

C:\Program Files\Google\Chrome\Application — путь установки Chrome по умолчанию в Windows (по состоянию на 07/2021).

вам нужно указать 2 пути: один для chrome.exe, а второй для каталога данных, в котором будет храниться chrome, сделайте так, чтобы каталог данных имел права на запись "C:\Program Files (x86)\Google\Chrome\Application\chrome. exe" --disable-site-isolation-trials --disable-web-security --user-data-dir="D:\temp"

Для пользователей Windows:

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

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

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

Это работает путем создания новой папки/каталога "Chrome dev session" в C: и указывает этому новому экземпляру Chrome использовать эту папку/каталог для своих данных пользователя и сеанса. Из-за этого новый экземпляр отделен от ваших "обычных" данных Chrome, и ваши закладки и другие сохраненные данные будут недоступны в этом экземпляре.

Примечание: действует только первый «новый» экземпляр Chrome, открытый с помощью этого метода, следовательно, действует только первая вкладка в первом новом окне Chrome. Если вы закроете этот экземпляр, вы можете снова использовать ту же команду, и, например, любые закладки для вашего локального приложения или аналогичные по-прежнему будут там, поскольку они указывают на ту же папку.

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

Я не знаю, но, возможно, это связано с тем, что в целом Google/Chrome, вероятно, не хотят, чтобы вы отключали защиту.

Для Windows:

Открыть меню "Пуск"

Введите windows + R или откройте "Выполнить"

Выполните следующую команду:

Для Mac:

Выполните следующую команду:

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

введите здесь описание изображения

Для Mac

Если вы хотите открыть новый экземпляр браузера Chrome с отключенной веб-безопасностью, не закрывая существующие вкладки, используйте следующую команду

Откроется новый экземпляр браузера Chrome с отключенной веб-безопасностью, как показано ниже

введите здесь описание изображения

Используется последняя версия Chrome 96.0.4664.45 (официальная сборка) (64-разрядная версия)

windows: нажмите кнопку «Пуск», затем скопируйте и вставьте нижеприведенное (измените D:\temp по своему вкусу).:

Linux: запустите терминал, затем выполните приведенную ниже команду (измените каталог ~/tmp по своему вкусу)

Примечание. Это решение запустит Chrome в изолированной программной среде и не повлияет на основной профиль Chrome.

Это единственное решение, которое мне подходит. Я запустил этот chrome.exe --disable-site-isolation-trials --disable-web-security --user-data-dir="D:\temp" в окне запуска в Windows 10. Большое спасибо.

Добавление --disable-site-isolation-trials действительно помогло мне в моем случае, Chrome v 75.0, Selenium Web Driver, Java. Спасибо!

У меня это работает в Linux, но с небольшой модификацией google-chrome --disable-site-isolation-trials --disable-web-security --user-data-dir="/tmp"

У меня версия 95, но добавление --disable-site-isolation-trials не работает. Есть обходной путь для этого?

Для пользователей 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 не поддерживается!

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

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

EDIT 2: я больше не могу заставить это работать последовательно.

РЕДАКТИРОВАТЬ: я пытался использовать его на днях для другого проекта, и он перестал работать. Удаление и повторная установка расширения исправили его (чтобы сбросить настройки по умолчанию).

Исходный ответ:

Я не хотел перезапускать Chrome и отключать веб-безопасность (потому что я просматривал веб-страницы во время разработки) и наткнулся на это расширение Chrome.

По сути, это небольшой тумблер для включения и выключения проверки Allow-Access-Origin-Control. Мне идеально подходит для того, чем я занимаюсь.

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

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

@bryc На самом деле это не так. Учтите, однако, что вы можете использовать --allow-file-access-from-files вместо отключения всей веб-безопасности.

«расширение больше не существует», можете ли вы удалить свой ответ или хотя бы выделить Изменить 3 вверху жирным шрифтом

Кажется, ни одно из приведенных выше решений на самом деле не работает. --disable-web-security больше не поддерживается в последних версиях Chrome.

Не знаю, почему Chrome так усложняет жизнь разработчикам. Он блокирует все возможные способы отключения проверки безопасности XSS даже для использования в разработке, что совершенно не нужно.

[Обновлено 23 июня 2018 г.] Недавно я разрабатываю приложение SPA, в котором необходимо снова использовать corsproxy. Но похоже, что ни один из corsproxy на github не может удовлетворить мои требования.

Самый простой и надежный способ использования CORS в Safari — отключить CORS в меню разработки.

  1. Включите меню разработки, выбрав «Настройки» > «Дополнительно».
  2. Затем выберите «Отключить ограничения для разных источников» в меню «Разработка».

Как отключить строгое происхождение при перекрестном происхождении?

Чтобы отключить политику одного источника или разрешить общий доступ к ресурсам из разных источников в браузерах IE и Edge в Windows, выполните следующие действия: Откройте браузер Internet Explorer. Перейдите в: Инструменты -> Свойства обозревателя -> Безопасность. Выберите зону безопасности «Интернет» и нажмите «Пользовательский уровень»

Как отключить Cors Edge?

Есть идеи, как это отключить?…

  1. В edge://flags выполните поиск по перекрестному происхождению и отключите флаги.
  2. Перейдите на страницу edge://settings/content/protectedContent и убедитесь, что все отключено.
  3. Перейдите на страницу edge://settings/privacy и убедитесь, что обе опции «Предотвращение отслеживания» и «Блокировка потенциально нежелательных приложений» отключены.

Почему я получаю сообщение об ошибке CORS?

Внешняя или внутренняя часть CORS?

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

Как можно решить проблемы с несколькими источниками?

Чтобы исправить CORS, необходимо убедиться, что API отправляет правильные заголовки (Access-Control-Allow-*).Вот почему это нельзя исправить в пользовательском интерфейсе, и поэтому это вызывает проблему только в браузере, а не через curl: браузер проверяет и в конечном итоге блокирует вызовы.

Как отключить политику одного источника в Chrome и IE?

3 ответа. Да, вы можете установить это в настройках Интернета: перейдите на вкладку «Безопасность». Для текущей зоны нажмите кнопку «Пользовательский уровень…». В следующем окне прокрутите примерно треть пути вниз до «Разное > Доступ к источникам данных между доменами» и установите для него значение «Включить».

Как отключить Safari CORS?

Просто включите меню разработчика в меню «Настройки» >> «Дополнительно» и выберите «Отключить ограничения для разных источников» в меню «Разработка». Если вы хотите использовать только локальные файлы, вам нужно только включить меню разработчика и выбрать «Отключить ограничения для локальных файлов» в меню разработки.

Все ли браузеры поддерживают CORS?

Самый безжалостный из ваших вариантов, но, учитывая, что большинство браузеров поддерживают CORS, вы можете просто указать менее чем 2% (в среднем) пользователей Opera использовать другой браузер.

Как проверить, работает ли CORS?

Вы можете протестировать его с помощью любого остаточного клиента, такого как POSTMAN Rest Client, или просто проверить его из консоли браузера —> вкладка «Сеть» -> в фильтре xhr — проверьте заголовок для конкретного запроса. вы можете проверить запрос и ответ.

Как отключить Cors в Google Chrome-Нараяна?

Вы можете открыть консоль браузера Google Chrome, нажав клавишу F12. Запустите Google Chrome, отключив CORS. Нажмите Windows + R, затем введите следующую команду. Синтаксис: –disable-web-security –disable-gpu –user-data-dir=~/chromeTemp

Есть ли проблема с Cors в Chrome?

Отключите его и перезапустите Chrome. Во многих случаях это решает проблему, но вы можете прочитать дальше: общий доступ к ресурсам между источниками (CORS) подлежит изменению в Chrome версии 76. Новые заголовки представлены как часть безопасности, и они должны обрабатываться в коде.

Как избавиться от Blink Cors в Chrome?

Отключите флаг «out-of-blink-cors», скопировав и вставив этот адрес в адресную строку Chrome, а затем нажмите [enter]. На открывшейся странице вы увидите выделенный так называемый «флаг» (эксперимент). Отключите его и перезапустите Chrome. Во многих случаях это решает проблему, но вы можете прочитать дальше:

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

В результате разработчику необходимо отключить эту политику, чтобы продолжить разработку, предоставляя весь контент со своего локального хоста. Давайте узнаем, как отключить политику перекрестного происхождения для разных браузеров. Откройте командную строку с помощью «cmd», перейдите в корень диска C: и выполните следующую команду 2. Браузер Chrome в MacOS

Имея это в виду, как мне отключить безопасность браузера Chrome?

В Windows: щелкните правой кнопкой мыши (или Shift+щелчок правой кнопкой мыши в случае панели задач) на значке Chrome. Выберите Свойства. В текстовом поле «Цель» добавьте флаг --disable-web-security.

Как избавиться от ошибки Cors?

  1. Добавьте поддержку метода OPTIONS, чтобы предварительные запросы CORS были действительными.
  2. Добавьте в свой ответ заголовок Access-Control-Allow-Origin, чтобы браузер мог проверить действительность запроса.

Как включить CORS в веб-API?

Как включить CORS в вашем веб-API Если вам интересно, как включить CORS в вашем веб-API, вам следует установить Microsoft. В Visual Studio выберите «Диспетчер пакетов библиотек» в меню «Инструменты», а затем выберите «Консоль диспетчера пакетов». В обозревателе решений разверните проект WebApi. Затем добавьте атрибут [EnableCors] к нужному контроллеру:

Как отключить веб-API CORS?

Для каждого контроллера. Если вы установите [EnableCors] для класса контроллера, он будет применяться ко всем действиям на контроллере. Чтобы отключить CORS для действия, добавьте к действию атрибут [DisableCors]. В следующем примере CORS включен для всех методов, кроме PutItem .

Как запустить Chrome из командной строки?

Откройте приглашение командной строки: нажмите клавишу с логотипом Windows, введите «cmd» и откройте командную строку. Измените активный каталог на путь установки Chrome. Теперь запустите браузер в режиме инкогнито. В этом случае --incognito является переключателем командной строки.

Как отключить Cors Edge?

Выберите вкладку безопасности. Нажмите Пользовательский уровень под уровнем безопасности для этой зоны. Найдите Разное в меню настроек, появившемся в окне. Нажмите «Отключить» в разделе «Доступ к источникам данных между доменами».

Где находится Chrome exe на моем компьютере?

Chrome.exe находится в подпапке "C:Program Files (x86)" или иногда в подпапке C:WindowsSystem32 — обычно C:Program Files (x86)GoogleChromeApplication.

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

Чтобы отключить политику одного источника или разрешить общий доступ к ресурсам из разных источников в браузерах IE и Edge в Windows, выполните следующие действия: Откройте браузер Internet Explorer. Перейдите в: Инструменты -> Свойства обозревателя -> Безопасность. Выберите зону безопасности «Интернет» и нажмите «Пользовательский уровень»

Что такое Cors?

Совместное использование ресурсов из разных источников (CORS) – это механизм, который позволяет запрашивать ограниченные ресурсы на веб-странице из другого домена за пределами домена, из которого был предоставлен первый ресурс. Веб-страница может свободно вставлять изображения, таблицы стилей, скрипты, фреймы и видео из разных источников.

Что такое контроль доступа, разрешающий заголовок Origin?

Access-Control-Allow-Origin — это заголовок CORS (совместное использование ресурсов между источниками). Если сайт A запрашивает страницу с сайта B, браузер фактически извлечет запрошенную страницу на сетевом уровне и проверит, указан ли в заголовках ответа сайт A как разрешенный домен запрашивающей стороны.

Как сделать так, чтобы Chrome не блокировал загрузки?

Следующие шаги отключат предупреждения о фишинге и вредоносных программах, а также предупреждения о загрузке. В правом верхнем углу окна браузера щелкните меню Chrome Меню Chrome. Выберите Настройки. Щелкните Показать дополнительные настройки. В разделе "Конфиденциальность" снимите флажок "Защитить вас и ваше устройство от опасных сайтов"

Как отключить веб-безопасность в Chrome на Mac?

Для Mac использование Safari является хорошим альтернативным вариантом для целей локальной разработки, и эта функция встроена в браузер (поэтому нет необходимости добавлять расширение браузера или запускать Chrome с помощью команды bash, например [open -a Google Chrome --args - -disable-web-security --user-data-dir=""].

Как включить флаги в Chrome?

Чтобы получить доступ к меню "Флаги", введите chrome://flags в адресную строку и нажмите Enter. Здесь вы увидите длинный список параметров, каждый из которых имеет раскрывающееся меню, в котором можно установить значение «По умолчанию», «Включено» или «Отключено». Их много, поэтому лучший способ найти нужный — нажать Ctrl+F и выполнить поиск.

Что такое Cors-атака?

Совместное использование ресурсов из разных источников (CORS) – это механизм браузера, который обеспечивает контролируемый доступ к ресурсам, расположенным за пределами данного домена. Однако это также создает потенциал для междоменных атак, если политика CORS веб-сайта плохо настроена и реализована.

В чем смысл Cors?

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

Что такое Cors REST API?

tl;dr: в целях повышения безопасности скоро будут запрещены выборки из разных источников из скриптов контента в расширениях Chrome. Вместо этого такие запросы могут быть сделаны с фоновых страниц расширения и при необходимости переданы сценариям содержимого. [Документ был отредактирован 17 сентября 2020 г., чтобы отразить успешный запуск CORS-for-content-scripts в Chrome 85*.]***

Обзор

Когда веб-страницы запрашивают данные из других источников с помощью API-интерфейсов fetch или XHR, ответ будет отклонен, если это не разрешено заголовками CORS. Напротив, сценарии содержимого расширения традиционно могли получать данные из разных источников из любых источников, перечисленных в разрешениях их расширения, независимо от источника, в котором выполняется сценарий содержимого. В рамках более широких усилий Extension Manifest V3, направленных на повышение безопасности, конфиденциальности и производительности расширений, эти запросы между источниками в сценариях контента вскоре будут запрещены. Вместо этого сценарии содержимого будут подчиняться тем же правилам запросов, что и страница, на которой они выполняются. Страницы расширения, такие как фоновые страницы, всплывающие окна или страницы параметров, не затронуты этим изменением, и им по-прежнему будет разрешено обходить CORS для запросов из разных источников, как это делается сегодня.

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

Проблемы с запросами из разных источников

Чтобы предотвратить утечку конфиденциальной информации, веб-страницы, как правило, не могут получать данные из других источников. Если в ответе нет допустимого заголовка CORS, запрос страницы завершится ошибкой, например:

Недавно в Chrome была запущена новая функция безопасности, которая называется "Изоляция сайта", которая обеспечивает более безопасный способ ограничения этого типа. В частности, изоляция сайта не только блокирует ответ, но и предотвращает доставку данных в процесс визуализации Chrome, содержащий веб-страницу, с помощью функции, называемой блокировкой чтения из разных источников (CORB).Это помогает предотвратить утечку данных, даже если вредоносная веб-страница попытается атаковать ошибку безопасности в процессе визуализации Chrome или попытается получить доступ к данным в своем процессе с помощью атаки Spectre.

Сценарии контента представляют собой проблему для изоляции сайта, поскольку они выполняются в том же процессе визуализации Chrome, что и веб-страница, с которой они работают. Это означает, что процессу визуализации должно быть разрешено извлекать данные из любого источника, для которого расширение имеет разрешения, что во многих случаях является всем источником. В таких случаях изоляция сайта будет менее эффективной при наличии сценариев содержимого, поскольку скомпрометированный процесс визуализации может перехватить сценарии содержимого и запросить (и, таким образом, привести к утечке) любые данные из источников, перечисленных в расширении. (К счастью, это не проблема для атак Spectre, которые не могут взять под контроль скрипты контента. Это проблема, если злоумышленник может использовать ошибку безопасности в процессе рендеринга Chrome, позволяя злоумышленнику выдавать произвольные запросы, как если бы они пришли из сценария содержимого.)

Чтобы смягчить эти проблемы, будущие версии Chrome будут ограничивать сценарии контента теми же выборками, которые может выполнять сама страница. Сценарии содержимого могут вместо этого запрашивать у своих фоновых страниц данные из других источников от их имени, где запрос может быть сделан из процесса расширения, а не из более легко используемого процесса визуализации.

Запланированные ограничения

Как описано выше, скрипты контента потеряют возможность извлекать данные из разных источников из источников в разрешениях своего расширения, и они смогут извлекать только данные, к которым имеет доступ сама базовая страница. Для получения дополнительных данных сценарии содержимого могут отправлять сообщения на фоновые страницы своего расширения, которые могут передавать данные из источников, ожидаемых автором расширения.

Этот переход будет происходить поэтапно, чтобы свести к минимуму неудобства для разработчиков расширений.

В первом квартале 2019 г. в Chrome была удалена возможность делать запросы из разных источников в скриптах контента для новых и ранее незатронутых расширений, при этом сохранен «белый список» затронутых расширений, которые могут продолжать делать такие запросы в настоящее время. Это изменение началось в Chrome 73.

Мы продолжаем работать с разработчиками расширений из белого списка, чтобы перейти на новый метод запроса данных из разных источников, чтобы помочь им подготовиться к Extension Manifest V3. Мы удаляем такие расширения из белого списка по мере их переноса, помогая повысить безопасность Chrome и эффективность изоляции сайтов от продвинутых злоумышленников.

Во втором квартале 2020 г. в Chrome была удалена возможность обходить CORS в запросах из разных источников из скриптов контента, на которые распространяется тот же «белый список», что и выше. Это изменение началось в Chrome 85.

Изменения означают, что выборка из другого источника, инициированная из сценариев содержимого, будет иметь заголовок запроса Origin с источником страницы, и у сервера будет возможность утвердить запрос с соответствующим заголовком ответа Access-Control-Allow-Origin.< /p>

Расширения, которые ранее были добавлены в «белый список», не будут затронуты изменениями в Chrome 85. Однако новое поведение CORS для скриптов контента может на самом деле упростить удаление некоторых расширений из белого списка, если их выборка теперь будет одобрен сервером с заголовком ответа Access-Control-Allow-Origin. Мы знаем, что это относится к нескольким расширениям, включенным в белый список.

[отредактировано 28 мая 2020 г.] В октябре 2020 г. мы опубликуем белый список расширений, чтобы проинформировать пользователей о рисках безопасности, связанных с использованием любых расширений, которые все еще находятся в списке. Мы надеемся сократить список как можно быстрее, потому что использование этих расширений ослабит защиту Chrome от межсайтовых атак. Перед публикацией или прекращением поддержки белого списка мы отправим предварительное уведомление в список обсуждения chromium-extensions@.

[добавлено 17 сентября 2020 г.] В Chrome 87 мы упразднили и удалили белый список CORB/CORS. Согласно информационной панели Chrome, этот выпуск Chrome предварительно планируется отправить в бета-версию примерно 15 октября 2020 г., а в стабильную версию — примерно 17 ноября 2020 г. Расширения, которые не были перенесены на новую модель безопасности, могут не работать в Chrome 87 и выше.

Рекомендуемые действия разработчика

Чтобы подготовиться к Extension Manifest V3 и не попасть в белый список расширений, представляющих угрозу безопасности на разных сайтах, мы рекомендуем разработчикам затронутых расширений предпринять следующие действия:

1. Определите, затронуто ли ваше расширение [отредактировано 09 марта 2020 г.]

Вы можете проверить, влияют ли запланированные изменения CORB и CORS на ваше расширение, запустив Chrome 81 или более позднюю версию (начиная с версии 81.0.4035.0) со следующими флагами командной строки, чтобы включить запланированное поведение:

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

[добавлено 09 марта 2020 г.]:

Если вы видите указанные выше ошибки, вы можете проверить, являются ли изменения, описанные на этой странице, причиной, временно отключив запланированное поведение. (Возможно, что ошибки могут появляться по другим причинам.) Чтобы протестировать с отключенным запланированным поведением, запустите Chrome 81 или более позднюю версию (начиная с версии 81.0.4035.0) со следующими флагами командной строки:

2. Избегайте перекрестных выборок в сценариях содержимого

Если необходимы выборки из разных источников, а сервер не предоставляет заголовок ответа Access-Control-Allow-Origin для источника страницы, выполняйте их на фоновой странице расширения, а не в сценарии содержимого. При необходимости ретранслируйте ответ на сценарии содержимого (например, с помощью API-интерфейсов обмена сообщениями расширения). Например:

Сценарий старого контента, выполняющий выборку из разных источников:

Читайте также: