SecurityPlayerAccess control

Блокування доменів і геообмеження для вбудованого відео

Як у плеєрі UFOLOAD працюють списки доменів для вбудовування, заборона країн і IP та підписані посилання, як діють правила зіставлення й де межі кожного з них.

Щойно відео стає публічним, будь-хто, хто вміє читати код вашої сторінки, може скопіювати його адресу. Іноді це нормально. Часто — ні: інший сайт вбудовує ваш плеєр і витрачає ваш трафік, ліцензія поширюється лише на деякі країни, або якийсь діапазон адрес постійно викачує вашу бібліотеку. UFOLOAD дає для цього кілька засобів контролю, і вони працюють на різних рівнях. У цій статті пояснено, що робить кожен із них, як працюють правила зіставлення і де закінчуються можливості кожного, щоб ви могли розумно їх поєднувати, а не покладатися на один перемикач.

Засоби контролю коротко

ЗасібЩо обмежуєДе налаштовується
Дозволені домени для вбудовуванняЯкі сайти можуть показувати ваш плеєр в iframeСтудія плеєра, вкладка «Доступ»
Заборонені країниГлядачів із зазначених країнСтудія плеєра, вкладка «Доступ»
Заборонені IP-адресиОкремі адреси та маскиСтудія плеєра, вкладка «Доступ»
Дозволені домени для завантаженняЯкі сайти можуть відкривати сторінку завантаженняСтудія плеєра, вкладка «Доступ»
Підписані посилання з терміном діїЯк довго адреса відтворення залишається дійсною і для когоAPI, POST /files/{id}/links

Усе з цього списку входить до налаштувань плеєра й доставки вашого акаунта та застосовується до всіх ваших відео. Правила доступні на будь-якому тарифі; лише сама кнопка завантаження обмежена тарифами Pro і Max, як видно на сторінці тарифів.

Крок 1: обмежте вбудовування своїми доменами

Плеєр для вбудовування працює в iframe на чужій сторінці, і браузер повідомляє йому, що це за сторінка, через referrer. Плеєр передає цей хост серверу, а той порівнює його з вашим списком. Якщо хоста немає у списку, сервер відмовляє з кодом 403, і плеєр замість відео показує повідомлення про недоступність.

Правила зіставлення суворі, і їх варто знати точно:

  • example.com дозволяє лише цей конкретний хост і нічого більше. Він не дозволяє www.example.com.
  • *.example.com дозволяє всі піддомени example.com, але не сам example.com. Щоб охопити сайт і його піддомени, додайте обидва записи.
  • Регістр не має значення, порти й кінцева крапка ігноруються, тож Example.com:8080 збігається з example.com.
  • Список вміщує до 100 записів. Порожній список означає, що плеєр можна вбудовувати будь-де, — це поведінка за замовчуванням.
  • Вказуйте прості імена хостів. Якщо ви помилково вставите повну адресу, збережеться лише її хост.
Увага

Перш ніж увімкнути список, додайте всі хости, на яких справді вбудовуєте плеєр, зокрема тестові домени й домени попереднього перегляду. Відео, яке раптом показує повідомлення про недоступність на вашому ж тестовому сайті, — найпоширеніший сюрприз.

Чого не робить блокування доменів

Цей засіб зупиняє випадковий хотлінкінг — коли хтось вставляє ваш iframe на свою сторінку. Він не є межею безпеки, і краще розуміти чому. Перевірка спирається на referrer, який надсилає браузер. Якщо сторінка прибирає referrer, плеєр не може визначити, де його вбудовано, і в такому разі не блокує, бо інакше налаштування приватності й політики referrer ламали б легітимні вбудовування. Так само наполегливий відвідувач, який скопіює підписану адресу плейлиста з панелі мережі, зможе відтворювати її деінде, доки вона не спливе, бо сегменти перевіряються за підписом у посиланні, а не за сторінкою, яка їх запитує. Публічна сторінка перегляду відео теж не обмежується списком доменів: її може відкрити будь-хто, хто має посилання.

Тож сприймайте список як паркан, що тримає чесних сусідів на відстані. Для сильнішого контролю над потоком, який ви віддаєте самі, використовуйте підписані посилання, описані нижче. Якщо вам потрібне протилежне — відео, доступне лише вибраним людям, — врахуйте, що в UFOLOAD немає приватних відео й немає DRM; прочитайте статтю власний хостинг, безкоштовні платформи чи відеохостинг, перш ніж довіряти йому конфіденційний контент.

Крок 2: заблокуйте країни та IP-адреси

Правила для країн і IP застосовуються у двох місцях: коли глядач відкриває сторінку перегляду чи вбудовування та під час кожного запиту плейлиста й сегментів на рівні доставки. Перевірки під час доставки виконуються для кожного запиту, а не кешуються, тож додане правило діє вже для наступного сегмента, і той, хто вже має посилання, не зможе обійти правило, просто зберігши його.

  • Країни вказуються дволітерними кодами ISO 3166-1 alpha-2 через кому, наприклад US, CN, RU. Країну глядача визначають за IP-адресою в базі геолокації. Кожен список вміщує до 100 записів.
  • IP-адреси можна вказати як окрему адресу, наприклад 203.0.113.7, або як маску із зірочкою в останньому октеті, наприклад 203.0.113.*, що охоплює весь діапазон із 256 адрес. Адреси IPv6 можна вказувати лише точно.

Два практичні застереження. Маски — грубий інструмент: маска .* у мобільній чи офісній мережі блокує кожну легітимну людину за нею. А географія за IP точна настільки, наскільки точні дані про адреси, на які вона спирається. Відвідувачі через VPN чи проксі виглядають так, ніби перебувають там, де вузол виходу, тож заборона країни — це спосіб зменшити небажаний трафік або сумлінно дотримуватися регіональної ліцензії, а не гарантія.

Порада

Ваші власні правила не блокують вас, поки ви ввійшли як учасник організації, якій належить відео, і так само не блокують нашу службу підтримки. Це зроблено навмисно, щоб заборона власної країни не відрізала вас від бібліотеки, але це також означає, що тестувати треба з браузера без входу в акаунт або з іншої мережі.

Якщо ви відтворюєте потік на власній сторінці через hls.js (див. вбудовування HLS-відео), список доменів не задіяний, бо плеєр ніколи не питає дозволу в сторінки UFOLOAD. Контроль забезпечує саме посилання. POST /api/v1/files/{id}/links видає посилання для відтворення й завантаження з терміном дії від 60 секунд до 30 днів. Додайте bind_ip, щоб прив'язати посилання до однієї IPv4-адреси, або bind_cookie, щоб прив'язати його до значення cookie, яке ваш сервер встановлює відвідувачу; тоді у відповіді буде вказано cookie, що має супроводжувати запит.

bash
curl -X POST "https://ufoload.com/api/v1/files/FILE_ID/links" \
  -H "Authorization: Bearer $UFOLOAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ttl": 600, "bind_ip": "203.0.113.7"}'

Короткий термін дії разом із прив'язкою — найсильніший доступний інструмент: посилання, скопійоване з вашої сторінки, стає марним за кілька хвилин і марне з будь-якої іншої адреси. Ціна — вам доведеться видавати посилання зі свого сервера під час кожного перегляду сторінки; саме цей підхід описано в посібнику із завантаження та API і в документації API.

Домени для завантаження

Плеєри на тарифах Pro і Max можуть показувати кнопку «Завантажити». Окремий список — дозволені домени для завантаження — працює так само, як список для вбудовування, але визначає, які сайти можуть відкривати сторінку завантаження у фреймі. Залиште його порожнім, щоб дозволити всі сайти. Відвідувачі, які відкривають сторінку завантаження безпосередньо на UFOLOAD, не обмежуються — так само, як і зі сторінкою перегляду.

Крок 3: збережіть і перевірте

  1. Збережіть списки на вкладці «Доступ».
  2. Відкрийте сторінку на дозволеному домені в приватному вікні й переконайтеся, що відео відтворюється. Перевірте також варіант із піддоменом.
  3. Відкрийте те саме вбудовування з домену, якого немає у списку, наприклад з локальної тестової сторінки на іншому імені хоста, і переконайтеся, що плеєр показує повідомлення про недоступність.
  4. Для правила за країною чи IP тестуйте без входу в акаунт — з мережі, що відповідає правилу, якщо така у вас є.
  5. Тримайте політику referrer власної сторінки на розумному значенні, наприклад strict-origin-when-cross-origin. Політика no-referrer приховує хост від плеєра, і тоді він не може застосувати список.

Разом список для вбудовування й короткоживучі підписані посилання покривають більшість реальних випадків: випадковий хотлінкінг блокується на вході, а тому, хто йде далі, доведеться добувати посилання, яке спливає. Якщо реклама доступна й ви показуєте її в плеєрі, посібник із монетизації пояснює формати реклами та як плануються рекламні паузи. Перелік усього, що доступно в плеєрі, — на сторінці можливостей, а чек-лист вибору відеохостингу показує, яких засобів контролю доступу варто вимагати від будь-якого провайдера.

Спробуйте з безкоштовним акаунтом

Завантажте відео й отримайте HLS-плеєр і API-ключ за кілька хвилин. Ліміти тарифів наведено на сторінці «Тарифи».