CORS (Сross-Origin Resource Sharing)
Cross-Origin Resource Sharing (CORS) — протокол безопасности, который позволяет веб-приложениям безопасно получать доступ к ресурсам другого происхождения. Это возможно за счет использования дополнительных заголовков HTTP для предоставления браузеру разрешения на доступ к этим ресурсам.
Этапы CORS
Предварительный запрос. Перед основным запросом браузер посылает на сервер исследовательский запрос «preflight» через метод HTTP OPTIONS. Его цель — убедиться в безопасности фактического запроса.
CORS-заголовки. Сервер отвечает CORS-заголовками, которые определяют, какие сайты происхождения, HTTP-методы и заголовки допустимы в фактическом запросе.
Фактический запрос. Если предварительная проверка прошла успешно, браузер переходит к отправке фактического запроса с соответствующими данными.
Преимущества CORS
Безопасность. CORS гарантирует, что конфиденциальные данные не попадут в руки вредоносных веб-сайтов, тем самым защищая сервер и клиента.
Гибкость. CORS позволяет разработчикам создавать динамичные и обогащенные веб-сайты за счет безопасного использования ресурсов различного происхождения.
Контроль. CORS определяет, какие сайты могут взаимодействовать с серверами их владельцев, и дает им чувство контроля, позволяя отказаться от «ограничения единственного происхождения».
Применение CORS
Загрузка шрифтов. Когда для веб-страницы необходимы шрифты из разных источников, правильная установка CORS-заголовков имеет большое значение.
Вызовы API. CORS обеспечивает безопасность и авторизацию взаимодействия, когда веб-приложение выполняет вызовы API на сервер из другого источника.
Получение данных. Правильная реализация CORS имеет решающее значение для одностраничных приложений (SPA), которые получают данные из различных источников.