В блог
Дата: 13.09.2017

У клиента была проблема: конкуренты копировали и воспроизводили уникальный видеоконтент в собственных плеерах на своих сайтах. Требовалось ограничить доступ к контенту.

Что мы предложили?

Для новой функции использовали технологию CORS (Cross-Origin Resource Sharing), которая ограничивает предоставление контента браузерам при отсутствии в запросе нужного заголовка. Плееры конкурентов не смогут воспроизводить контент, если в заголовках CDN не будет заголовка CORS.

Как это работает?

На стороне CDN-сервера проверяется — совпадает ли значение заголовка Origin, с которым пришел запрос на CDN, с теми доменами, которые указаны пользователем в настройках заголовка Access-Control-Allow-Origin.

Совпадает: добавляем заголовок Access-Control-Allow-Origin со значением пришедшего в запросе $http_origin.

Не совпадает: заголовок Access-Control-Allow-Origin не добавляется к заголовкам ответа.

Какие задачи мы решили?

1. Добавить CORS-заголовок

CORS-заголовок используется для защиты контента от встраивания на сторонних доменах. Мы не могли использовать «Политику доступа по доменам», так как даже если разрешить встраивание для определённых доменов, то без CORS-заголовка контент всё равно не воспроизведётся.

2. Предусмотреть возможность выборочного добавления CORS-заголовка

Для клиента было важно, чтобы проверка «добавлять или не добавлять» заголовок в зависимости от домена происходила на стороне CDN-сервера. Поэтому мы реализовали новую опцию, которая снимает оба ограничения.

Заголовок добавляется только к заранее определённому списку доменов и не добавляется при запросах от других доменов. (Добавление заголовка через опцию «Кастомные заголовки» невозможно, поскольку в этом случае заголовок с заданным значением будет добавляться ко всем запросам.)

Опция позволяет добавить заголовок Access-Control-Allow-Origin для всех запросов или запросов с выбранных доменов (не более пяти).

Опция доступна в общих настройках CDN-ресурса и в разделе «Правила».