Устранение неполадок и часто задаваемые вопросы

Назад к функциям инфраструктуры платного доступа


Q1: Не работает защита от вставки прямых ссылок. Поток все время открыт для просмотра.

У этого может быть всего лишь несколько причин.

  1. Проверьте секцию "Geo and IP-based restrictions" в вашем правиле WMSAuth. Пользователи из стран и диапазонов IP-адресов, включенных в разрешительный список, имеют доступ к потокам, подпадающим под действие данного правила, независимо от подписи. Пожалуйста, обратите внимание на то, как следует использовать ограничения по географическому признаку, в вопросах Q5 и Q6 из данного раздела.
  2. Перейдите в меню "Nimble -> HTTP origin applications" и убедитесь, что имя приложения потока отсутствует в списке. Приложения, указанные в этой секции не восприимчивы к любым параметрам настройки сессии, включая защиту от вставки прямых ссылок WMSAuth.
  3. Проверьте параметр "Time tolerance" в вашем правиле WMSAuth. Он означает максимально допустимую разницу во времени между веб-сервером и медиа-сервером. Имеет смысл использовать этот параметр, если вы не можете настроить одно и то же время на обоих серверах. Если значение параметра "Time tolerance" больше разницы во времени между веб-сервером и медиа-сервером, тогда оно фактически увеличивает срок действия подписи. Мы рекомендуем установить правильное время на всех ваших серверах и указать значение параметра "Time tolerance" в интервале 60-90 секунд.

Q2: Не работает защита от вставки прямых ссылок. Поток все время заблокирован.

Все в порядке, это означает, что настройки ещё не завершены. В основе защиты от вставки прямых ссылок лежат 4 параметра: поток, пароль, время и IP-адрес. Давайте проверим, что именно было пропущено.

  1. Поток доступен
    1. Во-первых, создайте тестовую веб-страницу, которая будет содержать только код подписи URL и плеер, чтобы проверить итоговый URL.
    2. Отключите защиту WMSAuth, чтобы проверить воспроизводится ли оригинальный поток. Это может быть сделано путём корректировки названия потока в правиле WMSAuth. Достаточно поменять имя на любое другое, например, "live" на "live_wmsauth_disabled", и сохранить настройки.
    3. Всё ещё не проигрывается? Пожалуйста, убедитесь, что поток доступен.
    4. Прогрывается нормально? Включите защиту WMSAuth снова.
  2. Пароль указан верно
    1. Проверьте ключ, который используется в коде подписи URL и в правиле WMSAuth — они должны совпадать.
    2. Если вы используете язык PHP для подписей, убедитесь в том, что ваш ключ не содержит знак доллара ($), т.к. этот знак является зарезервировнным символом для языка PHP.
  3. Время установлено правильно
    1. Проверьте время медиа-сервера — оно должно быть правильно установлено и соответствовать временной зоне. Примените настройки и для Wowza, и для Nimble Streamer.
    2. Проверьте, что время медиа-сервера такое же, как время веб-сервера. Разница во времени должна быть меньше параметра "Time tolerance", который устанавливается сразу после поля "Password" в правиле WMSAuth.
    3. Увеличьте параметр validminutes. Этот параметр определяет время, в течение которого подписанная ссылка будет пригодна для проверки.
  4. IP-адрес соответствует подписи
    1. Добавьте значение IP-адреса посетителя на тестовую веб-страницу. В языке PHP это можно сделать так: "echo $_SERVER['REMOTE_ADDR'];". Убедитесь, что вывод содержит ваш собственный IP-адрес. Если нет, тогда необходимо следовать этой статье для получения корректного IP-адреса посетителя.
    2. Если все еще не работает, перейдите в меню "Control -> WMSAuth paywall setup" и нажмите на "Server logs". Затем попробуйте воспроизвести поток. В течение нескольких секунд в логе появятся сообщения с описанием ошибки.
    3. Если вы видите сообщение "we cannot find hash match for _IP_", где _IP_ является фактическим IP-адресом, проверьте, что этот адрес совпадает с тем, что выведен на вашей тестовой странице. Если же вы видите какое-либо другое сообщение, обратитесь к вопросу Q3 из данного раздела.
    4. Если адрес, который отображен на вашей тестовой странице, совпадает с адресом из лога, вам стоит вернуться к пункту "Пароль указан верно". Если нет, тогда вы столкнулись с редким случаем, когда ваш интернет-провайдер динамически меняет IP-адрес пользователя при каждом запросе. Следовательно, использовать IP-адрес в подписи для идентификации пользователя не имеет смысла, и вам придется сделать это другим способом. Для такого случаая можно использовать платформу оплаты за просмотр. Пожалуйста, прочитайте эту статью, чтобы ознакомиться с деталями реализации.

Если после выполнения всех указанных выше шагов что-то всё ещё происходит не так, как нужно, пожалуйста, свяжитесь с нами и опишите вашу проблему.
Пожалуйста, отправьте нам следующую информацию:

  1. URL тестовой веб-страницы, указанной в пункте 1.
  2. Исходный код веб страницы, чтобы мы могли проверить, что он в порядке.

Q3: Что означают сообщения в логе WMSAuth?

Итак, вы перешли в меню "Control -> WMSAuth paywall setup" и нажали на ссылку "Server logs".
Следующие сообщения встречаются наиболее часто:

  • signature is correct but link expired — пользователь запросил защищенный медиа-контент по ссылке с истекшей подписью. Срок действия подписи задается параметром validminutes. Это могла быть как попытка повторного использования ссылки, так и ошибка в настройках защиты. Если такого поведения не должно быть в данном случае, пожалуйста, обратитесь к пункту "Время установлено правильно" вопроса Q2 из данного раздела.
  • we cannot find hash match for _IP_ — пользователь запросил защищенный медиа-контент по ссылке с некорректной подписью. Это могла быть как попытка использования корректно подписанной ссылке с другого IP-адреса (ре-стриминг), так и ошибка в настройках защиты. Если такого поведения не должно быть в данном случае, пожалуйста, обратитесь к пункту "IP-адрес соответствует подписи" вопроса Q2 из данного раздела.
  • Time, hashvalue or validminues is null for _IP_ — пользователь запросил защищенный медиа-контент по ссылке без подписи.
  • user [_IP_] is in allow list — пользователь запросил защищенный медиа-контент, и его запрос был выполнен без учета подписи, потому как адрес пользователя включен в разрешительный список.
  • wmsauth checked link and it's valid — пользователь запросил защищенный медиа-контент по ссылке с корректной подписью.

Q4: Что если WMSPanel стала недоступна по причине ошибки в сети?

Нет проблем, агент WMSPanel всё-равно будет способен работать. Все настройки хранятся на стороне медиа-сервера, включая базу данных GeoIP. Таким образом ограничения на просмотр будут применяться без перерывов и ваши медиа-данные будут защищены независимо от доступности WMSPanel.

Q5: Как я могу сделать доступными потоки для одной страны и недоступными для всех остальных?

Скажем, вам необходимо, чтобы люди из Антигуа и Барбуды смотрели ваше живое вещание, а остальные страны нет. Чтобы это сделать, просто добавьте нужные страны в список разрешенных стран, затем прокуртите вниз до раздела защиты от повторной публикации, отметьте все протоколы и введите пароль ненулевой длинны. Таким образом, если кто-то придёт из Антигуа и Барбуды, он (или она) пройдёт проверку по списку разрешенных стран и будет допущен до просмотра потока. Любой парень, скажем с Ямайки, пройдет проверку для страны (поскольку Ямайка не находится ни в списке разрешенных, ни в списке запрещенных стран), но не пройдёт проверку защиты от повторной публикации.

Q6: Как я могу сделать доступным мой поток только для одной страны и включить защиту от вставки прямых ссылок для него?

Это продолжение предыдущего вопроса. Когда вы добавляете страну в разрешительный список в каком-то правиле VMSAuth, платформа ограничения доступа не отрабатывает защиту от вставки прямых ссылок. Так происходит потому, что разрешительный список говорит о том, что "разрешить" — означает "никаких ограничений". Таким образом, чтобы воплотить сценарий, при котором будет выполняться защита от вставки прямых ссылок и доступ только для определённых стран, необходимо перейти в секцию geo-restriction, затем выбрать "All countries" из выпадающего списка и затем добавить их в запретительный список. После этого исключить страны, для которых необходимо разрешить доступ и добавить пароль для защиты от вставки прямых ссылок в поле пароля. Это будет работать так: зритель из страны в разрешительном списке будет проходить проверку в запретительном списке и будет проверен на подпись URL. Можно исключить любое количество стран из запретительного списка, чтобы настроить для них защиту от вставки прямых ссылок.

Q7: Как открыть вещание с origin-сервера для edge-серверов и при этом закрыть для всех остальных зрителей?

Вам необходимо создать правило WMSAuth. Добавьте IP-адреса ваших edge-серверов в разрешительный список (allow list) и укажите достаточно стойкий пароль. Поток будет доступен только для edge-серверов.

Q8: Как разрешить соединения с edge-серверов только в отдельном регионе, запретив смотреть конечным пользователям?

Это более сложный, чем Q7, случай когда у вас есть edge-сервера в отдельных странах и настроена балансировка нагрузки, но нужно оградить от случайных или намеренных соединений обычных пользователей. При этом исходный сервер должен быть в состоянии обрабатывать соединения обычных пользователей помимо раздачи на edge.
Ещё один вариант - вам нужно разрешить просмотр конкретным пользователям и запретить для остальной аудитории страны.
Решается это несложно. Пройдите в правило WMSAuth, добавьте нужную страну в Deny list и воспользуйтесь ссылкой "Add or manage custom IP ranges", чтобы задать диапазоны IP адресов для серверов или людей, которым нужен допуск.
После того, как заданы диапазоны, можете вернуться в правило WMSAuth, добавить диапазон в Allow list и отметить галку "Allow list has priority over Deny list".
По умолчанию, у Deny list есть приоритет над Allow list. А указанная настройка эти приоритеты позволяет поменять.

Q9: Как запретить скачивание файлов во время вещания видео-по-запросу?

Для предотвращения скачивания файлов достаточно установить пароль в правиле WMSAuth для псевдо-стриминга (progressive download).

10: Некоторые недобросовестные пользователи могут открывать мои защищённые ссылки напрямую, используя Kodi, SimpleTV, Targa.me, и др. Что я могу сделать?

Скорее всего у вас есть общедоступная веб-страница, которая используется одним из упомянутных выше приложений для получения правильного URL медиа-данных. Пожалуйста, прочтите эту статью, , чтобы изучать базовые подходы для борьбы с вышеуказанными приложениями. Простой код может быть найден в нашем репозитории github..

Q11: Как я могу сгенерировать уникальную подпись для отдельного потока?

Nimble Streamer способен генерировать подписи на основе потоков чтобы сделать их уникальными для каждого приложения или потока.

Q12: Есть ли какие-нибудь примеры построения инфраструктуры оплаты за просмотр (paywall) с помощью WMSAuth?

Все примеры кода могут быть найдены в github репозитории WMSPanel в разделе примеры защиты от вставки прямых ссылок (hotlinking) и примеры API.
Пожалуйста, прочтите также Руководство параноика по интернет-вещанию Томаса Гирса, чтобы посмотреть примеры реального использования интеграции инфраструктуры оплаты за просмотр.

Q13: Для всех ли серверов в группе WMSAuth применяются ограничения на количество соединений и скорости передачи данных?

Ограничения применяются для каждого сервера в отдельности. Таким образом, если вам необходимо выставить ограничение в 6000 одновременных подключений к 3 серверам, то необходимо добавить эти 3 сервера в группу и указать ограничение в 2000 соединений в правиле для каждого сервера.

Q14: Dispersa не может проверить защищённые потоки

Мониторинг потоков Dispersa использует распределённые контрольные точки, поэтому вам необходимо сделать так, чтобы эти серверы контрольных точек имели доступ к потокам, за которыми необходимо следить. Вы должны добавить контрольные точки в разрешительный список чтобы правила WMSAuth игнорировались для их запросов.

Q15: Как защитить мои ссылки от копирования без внесения изменений в исходный код веб-страницы?

Для стойкой защиты мы рекомендуем использовать защиту от вставки прямых ссылок. Если вы хотите ограничить возможность просмотра вашего контента с других доменов, не используя при этом подпись URL, возьмите на вооружение более простой метод блокировки домена (Domain Lock).

Q16: Как можно защитить потоки, если я пользуюсь CloudFlare или другим прокси?

В этой статье описан пример кода для случая с CloudFlare, а в этой статье описана работа с reverse proxy.

Q17: Как я могу посмотреть сырые данные от системы оплаты за просмотр, которые приходят с моих серверов?

Обработчик и интерфейс отладки позволяют получать данные от сервера и просматривать результаты в браузере. Используйте их, чтобы видеть, какие запросы поступают от серверов к вашему обработчику.

Q18: Я блокирую пользователей через pay-per-view, но они снова соединяются через какое-то время.

Обработчик PPV возвращает список заблокированных IDs на каждый вызов. Как только Nimble Streamer получает новый ответ от обработчика, он очищает список предыдущих заблокированных ID и делает блокировку согласно новым данным. Таким образом, если какой-то ID был в первом ответе от PPV и его нет в последующих ответах, то он перестанет блокироваться. Так что решением будет просто возвращать список всех блокированных ID на каждый запрос от сервера.

Есть другие вопросы?

Пожалуйста, свяжитесь с нами чтобы мы могли помощь интегрировать решения WMSPanel в ваш рабочий процесс.

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

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the Privacy Policy. If you want to know more or withdraw your consent to all or some of the cookies, please refer to the Privacy Policy.
By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to the use of cookies.