Написать в техподдержку Позвонить нам
Админпанель Выход

Содержание статьи:

    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

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

    Полезна ли была эта статья?