Реализовано два метода ограничения доступа к веб-контенту:

  1. Авторизация доступа с обращением к скрипту на стороне поставщика контента (внешняя авторизация).
  2. Проверка MD5 хэша и ограничения по времени на серверах раздачи (локальная авторизация).

 

 

Внешняя авторизация

Весь защищаемый контент выделяется в отдельный каталог на сервере-источнике поставщика контента, например:
origin.client.ru/secure/
Доступ к данному каталогу должен быть разрешен только для серверов CDN. Каталог исключается из доступа по прямым ссылкам. Отдача защищенных файлов проходит через обязательную поверку по специальной ссылке с авторизационными параметрами, например:
http://client.probro.ru/_cdn_auth/secure/file.mp4?param=parameter

Бесплатное тестовое подключение в течении 14 дней!

Высокая скорость доставки контента любого объема для ваших интернет проектов по всей России

Записаться на тест

Ссылки формируются поставщиком контента с указанием параметров авторизации. Сервер раздачи при получении HTTP-запроса на защищенный контент проксирует запрос к скрипту авторизации на стороне контент-провайдера. В запрос добавляются следующие заголовки:

  • X-Real-IP : IP-адрес пользователя;
  • X-CDN-Query : параметры запроса (всё, что идёт после доменного имени в URL).

Например:

X-Real-IP: 1.2.3.4
X-CDN-Query: /_cdn_auth/secure/file.mp4?param=parameter

Скрипт авторизации должен прислать HTTP-ответ:

  • Ответ с кодом ‘4XX’ запрещает доступ;
  • Ответ с кодом ‘200 ОК’ разрешает доступ.

Кроме того, ответ с кодом ‘200 ОК’ должен содержать заголовок X-Accel-Redirect, указывающий путь к файлу на сервере-источнике, например:

X-Accel-Redirect: /_cdn_real/secure/file.mp4

Информация, предоставляемая поставщиком контента для настройки внешней авторизации:

  • путь к каталогу с защищаемым веб-контентом на сервере-источнике;
  • URL скрипта авторизации.

Авторизация в сети CDN

Данный метод подразумевает локальную авторизацию запросов на серверах раздачи, без обращения к внешним ресурсам. Весь защищаемый контент выделяется в отдельный каталог на сервере-источнике поставщика контента, например:
origin.client.ru/secure/
Доступ к данному каталогу должен быть разрешен только для серверов CDN. Каталог исключается из доступа по прямым ссылкам. Отдача защищенных файлов проходит через обязательную поверку по специальной ссылке с авторизационными параметрами, например:
http://client.probro.ru/secure/file.mp4?md5=TJwAm-lsft38vJEdDh-Kbg&e=1306830000

В URL содержится два авторизационных параметра:

  • MD5-хэш, сгенерированный на основе URI, времени жизни и секретного ключа;
  • e – время окончания действия ссылки (POSIX time).

При получении такого запроса, сервер раздачи вычисляет значение MD5 и сравнивает его с полученным. Если значение не совпадает или текущее время превышает значение “e”, то пользователю возвращается HTTP-ответ с кодом ‘403 Forbidden’ (запрет на воспроизведение).
Алгоритм расчета MD5-хэша может также использовать IP-адрес пользователя в качестве входных данных. Пример вычисления MD5-хэша без использования IP-адреса:

md5 = base64_url(md5(SECRET:1306830000:/secure/file.mp4))

Пример вычисления MD5-хэша с использованием IP-адреса:

md5 = base64_url(md5(SECRET:1306830000:1.2.3.4:/secure/file.mp4))

Пример генерации MD5 с использованием PHP:

php -r \'print str_replace("=",
"",strtr(base64_encode(md5("SECRET:1306830000:1.2.3.4:/secure/file.mp4", TRUE)),
"+/", "-_")) . "\\n";\'
TJwAm-lsft38vJEdDh-Kbg

Бесплатное тестовое подключение в течении 14 дней!

Высокая скорость доставки контента любого объема для ваших интернет проектов по всей России

Записаться на тест

Результирующая ссылка для пользователя будет следующей:
http://client.probro.ru/secure/file.mp4?md5=TJwAm-lsft38vJEdDh-Kbg&e=1306830000

Информация, предоставляемая поставщиком контента для настройки внешней авторизации:

  • путь к каталогу с защищаемым веб-контентом на сервере-источнике;
  • секретный ключ;
  • алгоритм расчёта MD5 (с использованием IP-адреса пользователя или без).