Securetoken
Защищает контент от несанкционированного доступа с помощью временных токенов

Как это работает
Заголовок раздела «Как это работает»- Клиент запрашивает плейлист у middleware.
- Middleware генерирует временный токен для каждого канала.
- Клиент запрашивает канал с токеном.
- Alta проверяет токен; если он действителен, доступ разрешается.
Временный токен вычисляется middleware на стороне сервера, когда клиент запрашивает плейлист. Токен состоит из следующих компонентов:
Hash: SHA1-хеш, вычисляемый на стороне сервера.Salt: случайная строка для повышения безопасности.End time: время окончания действия токена (UNIX timestamp).Start time: время создания токена (UNIX timestamp).
Все части разделяются знаком минус и добавляются к адресу канала. Например: https://example.com:8100/tv/travel-channel/index.m3u8?token=e8bff06f373694dda657e8417fe76f6b54b69807-a5cd6c00-1669890000-1669810000
Последовательно объедините следующие значения и вычислите SHA1-хеш:
- Путь канала (например,
/tv/travel-channel/index.m3u8). Должен точно совпадать с запрошенным путём - IP-адрес клиента
- Время начала (UNIX timestamp)
- Время окончания (UNIX timestamp)
- Securetoken - задаётся в настройках Alta
- Salt
Формула:
sha1(channel_path + client_ip + start_time + end_time + securetoken + salt)Встроенный генератор защищённых ссылок
Заголовок раздела «Встроенный генератор защищённых ссылок»Встроенный генератор защищённых ссылок удобен для создания защищённых ссылок для тестов на любом канале. Если для канала включён securetoken, вы можете сгенерировать защищённую ссылку в панели администратора:
- Перейдите в настройки канала
- Нажмите кнопку “Secure link”, чтобы открыть диалог “Generate Channel Secure Link”.
- Заполните следующие поля:
- IP: IP-адрес клиента.
- Start / End: период действия токена.
- Нажмите Generate, чтобы создать ссылку с токеном
Пример на PHP
Заголовок раздела «Пример на PHP»Создайте файл securetoken.php со следующим кодом:
<?php
$channel = '/tv/travel-channel/index.m3u8';$client = '192.168.88.98';$starttime = 1669810000;$endtime = 1669890000;$securetoken = 'secret';$salt = 'a5cd6c00';
$hash = sha1($channel . $client . $starttime . $endtime . $securetoken . $salt);$token = $hash . '-' . $salt . '-' . $endtime . '-' . $starttime;
echo 'https://example.com:8100' . $channel . '?token=' . $token . PHP_EOL;Запустите скрипт:
php securetoken.phpВы увидите строку из первого примера. Обратите внимание: этот скрипт приведён только в качестве примера.