Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • AI Studio
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Облачная терминология
    • CDN
    • CLI
    • Cookie
    • CORS
    • DNS
    • gRPC
    • REST API
    • Виртуальная частная сеть (VPN)
    • Полное доменное имя (FQDN)
    • Протокол SSH
    • URL

В этой статье:

  • Описание термина
  • Как появился стандарт
  • Структура Cross-Origin Resource Sharing
  • Принцип работы CORS
  • Сферы применения
  1. Сети и доставка контента
  2. CORS

CORS и принцип одинакового источника

Статья создана
Yandex Cloud
Обновлена 26 марта 2025 г.
  • Описание термина
  • Как появился стандарт
  • Структура Cross-Origin Resource Sharing
  • Принцип работы CORS
  • Сферы применения

Описание терминаОписание термина

CORS (Cross-Origin Resource Sharing, англ.  «совместное использование ресурсов разных источников») — это стандарт, позволяющий предоставлять веб-страницам доступ к объектам сторонних интернет-ресурсов.
Сторонним считается любой интернет-ресурс, который отличается от запрашиваемого протоколом, доменом или портом.

Доступ предоставляется по специализированным запросам. Интернет-ресурс, принимающий запрос, содержит список доверенных источников, которым разрешен доступ к объектам. Страница-источник запроса получает доступ, если входит в список доверенных источников. Для предоставления доступа всем сторонним интернет-страницам используется маска «*».

Как появился стандартКак появился стандарт

Первоначально для защиты информации была разработана «Политика одинакового источника» (Same-Origin Policy, SOP). Поддерживающий политику SOP веб-браузер сверяет комбинации сетевого протокола (например, https), точное имя домена и номер порта, чтобы разрешить доступ к ресурсам веб-страницы по запросам с другой страницы. Политика SOP не обязательна к применению, однако все современные веб-браузеры ее поддерживают.

Если веб-ресурсы интернет-источника соответствуют SOP, для доступа к ним из другого источника браузер должен поддерживать технологию Cross-Origin Resource Sharing. В 2006 году рабочая группа Консорциума Всемирной паутины (World Wide Web Consortium, W3C – организация, разрабатывающая интернет-стандарты) представила первый рабочий проект этой технологии. В 2014 году CORS был принят в качестве Рекомендации W3C.

Структура Cross-Origin Resource SharingСтруктура Cross-Origin Resource Sharing

Методы CORS предназначены для управления доступом к дескрипторам (тегам) на веб-страницах в сети. Управляемые типы доступа подразделяются на три основных категории по работе с информацией сторонних ресурсов:

  1. Доступ на запись — это доступ к ссылкам, заполнению веб-форм и переадресации на сторонние веб-страницы, т.е. на передачу информации в сторонний источник (веб-ресурс).

  2. Доступ на вставку относится к категории доступа на считывание информации из стороннего источника. К этому типу принадлежат вставки в код дескрипторов audio, video, img, embed, object, link, script, iframe и другие элементы оформления веб-страниц. Структура подобных дескрипторов подразумевает самостоятельную инициацию перекрестных (cross-origin) запросов из сторонних источников. Все дескрипторы этой категории представляют низкий уровень угрозы безопасности, поэтому разрешены в веб-браузере по умолчанию.

  3. Доступ на считывание — это дескрипторы, загружаемые с использованием фоновых методов вызова, таких как fetch(), технологии обмена данными Ajax и пр. Поскольку подобные дескрипторы могут содержать в теле любые участки кода (в том числе вредоносного), они запрещены в веб-браузерах по умолчанию.

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

Принцип работы CORSПринцип работы CORS

При создании перекрестного HTTP-запроса браузер клиента добавляет в него объявление домена веб-страницы, инициирующей запрос. Домен объявляется в разделе Origin.

Например, страница https://client-1.ru/page.html запрашивает данные со страницы https://server-site.ru/info.
Пример запроса от браузера клиента, использующего методы CORS, приведен ниже:

GET /info HTTP/1.1
Host: server-site.ru
Origin: client-1.ru

В случае, если сервер по адресу www.server-site.ru разрешает странице-источнику запроса доступ к данным с домена, в его ответе на запрос появится строка Access-Control-Allow-Origin с именем объявленного домена:

Access-Control-Allow-Origin: https://client-1.ru

Если сервер, на который запрошен доступ, не добавит в ответ указанную строку, браузер клиента вместо данных файла info вернет код ошибки.

Если на сервере разрешен доступ к ресурсу страницам любого стороннего домена, в ответе будет указана маска «*».

Access-Control-Allow-Origin: *

Если на сервере разрешен доступ не всем, а нескольким сторонним клиентам, ответ сервера содержит имена всех этих доменов, выведенных отдельными строками или разделенных пробелами:

Access-Control-Allow-Origin: https://client-1.ru https://client-2.ru https://client-3.ru

Сферы примененияСферы применения

Механизм CORS используется как более защищенная альтернатива технологии JSONP, так как позволяет использовать все преимущества xml-запросов через http, и является неуязвимым для внедрения в запрос стороннего кода (SQL-инъекций).

Все современные браузеры поддерживают эту технологию (Yandex Browser, Google Chrome, Mozilla Firefox и др.)

Важно понимать, что технологию CORS должен поддерживать как приемник данных (веб-браузер), так и источник (веб-ресурс).

Например, Yandex Object Storage — универсальный облачный сервис для хранения данных, который поддерживает кросс-доменные запросы к ресурсам в каждом бакете. Подробнее см. в документации.

Подписчикам сервиса доступны удобные механизмы управления CORS, такие как консоль управления Yandex Cloud или HTTP API, совместимый с Amazon S3.

Конфигурация CORS — это XML-файл с правилами доступа. Конфигурация содержит не больше 100 правил, размер файла не превышает 64КБ. Готовый файл конфигурации можно загрузить в бакет с помощью AWS CLI (режима командной строки Amazon), либо создать с помощью встроенной консоли управления.

См. такжеСм. также

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

Была ли статья полезна?

Предыдущая
Cookie
Следующая
DNS
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»