База знаний LinxCloud Services

CORS

Общая информация

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

По защищенному соединению CORS поддерживает кросс-доменные запросы и передачу данных между браузером и web-серверами. Современные браузеры используют CORS в API-контейнерах, таких как XMLHttpRequest или Fetch, для снижения рисков, присущих запросам с других источников.

 

Сценарии использования

Возможные сценарии использования CORS:

  • Сценарий №1: на персональных ресурсах размещается веб-сайт в бакете с названием website. Пользователи загружают URL-адрес конечной точки сайта. После чего необходимо использовать JavaScript на веб-страницах, находящихся в этом бакете, чтобы отправлять аутентифицированные запросы GET и PUT для того же бакета с помощью конечной точки API сервиса для бакета. Обычно браузер предотвращает выполнение кода JavaScript, разрешающего такие запросы, но используя технологию CORS, можно настроить бакет так, чтобы запросы Cross-origin были разрешены с веб-сайта.
  • Сценарий №2: нужно разместить на своих ресурсах веб-шрифт из бакета сервиса. Браузеры всегда проводят предварительную проверку CORS для загрузки веб-шрифтов, так что необходимо настроить бакет, размещающий на своих ресурсах веб-шрифт, на разрешение создания запросов из любого источника.

 

Создание правила CORS

В сервисе «Объектное хранилище» есть технология кросс-доменных запросов ресурсов в бакете. Правило создается через вкладку CORS открытого бакета.

Где:

  • AllowedOrigins — веб-сайт, для которого разрешены кросс-доменные запросы к бакету. Должен содержать не более одного символа *
  • AllowedMethods — HTTP метод, разрешенный для использования при кросс-доменном запросе. Можно использовать более одного метода в одном правиле
  • MaxAgeSeconds — время в секундах, за которое браузер сохраняет в кэше результат запроса к объекту методом options
  • AllowedHeaders — разрешенный заголовок в запросе к объекту. В имени заголовка можно использовать один символ * для определения шаблона. Объектное хранилище сопоставляет заголовки, переданные в Access-Control-Request-Headers, с набором AllowedHeaders и отвечает на options списком разрешенных
  • ExposeHeaders — заголовок, разрешенный к показу в JavaScript-приложении в браузере. В запросе к объекту JavaScript-клиент может оперировать только заголовками, определенными в элементах ExposeHeaders

Через конфигуратор правил можно добавить несколько значений параметров.

Что вас интересует?
Получить демо-доступ

Спасибо за ваш запрос, мы свяжемся с вами в ближайшее время!