SecurityPlayerAccess control

Domeinvergrendeling en georestricties voor ingesloten video

Hoe lijsten met insluitdomeinen, land- en IP-blokkades en ondertekende links werken in de UFOLOAD-speler, hoe de regels matchen en waar elke maatregel ophoudt.

Zodra een video openbaar is, kan iedereen die de broncode van je pagina leest het adres kopiëren. Soms is dat prima. Vaak niet: een andere site sluit je speler in en verbruikt jouw verkeer, een licentie geldt maar voor een paar landen, of een blok adressen blijft je bibliotheek leegschrapen. UFOLOAD geeft je daarvoor meerdere maatregelen, en die werken op verschillende lagen. Dit artikel legt uit wat elke maatregel doet, hoe de vergelijkingsregels werken en waar elke maatregel ophoudt, zodat je ze verstandig combineert in plaats van op één schakelaar te vertrouwen.

De maatregelen in één oogopslag

MaatregelWat hij beperktWaar je hem instelt
Toegestane insluitdomeinenWelke sites je speler in een iframe mogen tonenPlayer studio, tabblad Toegang
Geblokkeerde landenKijkers uit de opgegeven landenPlayer studio, tabblad Toegang
Geblokkeerde IP-adressenLosse adressen en maskersPlayer studio, tabblad Toegang
Toegestane downloaddomeinenWelke sites de downloadpagina mogen openenPlayer studio, tabblad Toegang
Ondertekende links met een levensduurHoe lang een afspeeladres geldig blijft, en voor wieAPI, POST /files/{id}/links

Alles in deze lijst hoort bij de speler- en leveringsinstellingen van je account en geldt voor al je video's. De regels zijn op elk abonnement beschikbaar; alleen de downloadknop zelf is beperkt tot de abonnementen Pro en Max, zoals de prijspagina laat zien.

Stap 1: beperk insluiten tot je eigen domeinen

De insluitspeler draait in een iframe op de pagina van iemand anders, en de browser vertelt hem via de referrer welke pagina dat is. De speler geeft die host door aan de server, die hem vergelijkt met jouw lijst. Staat de host niet op de lijst, dan weigert de server met een 403 en toont de speler een melding dat de video niet beschikbaar is.

De vergelijkingsregels zijn strikt en het loont om ze precies te kennen:

  • example.com staat precies die host toe en verder niets. Het staat www.example.com niet toe.
  • *.example.com staat elk subdomein van example.com toe, maar niet het kale example.com. Wil je een site en zijn subdomeinen dekken, zet dan beide items op de lijst.
  • Hoofdletters maken niet uit, en poorten en een punt aan het eind worden genegeerd, dus Example.com:8080 matcht met example.com.
  • De lijst bevat maximaal 100 items. Een lege lijst betekent dat de speler overal mag worden ingesloten; dat is de standaard.
  • Schrijf gewone hostnamen. Plak je per ongeluk een volledig adres, dan wordt alleen de host bewaard.
Let op

Voeg elke host waarop je echt insluit toe, inclusief test- en previewdomeinen, voordat je de lijst inschakelt. Een video die op je eigen testsite ineens als niet beschikbaar wordt gemeld, is de meest voorkomende verrassing.

Wat domeinvergrendeling niet doet

Deze maatregel houdt gewoon hotlinken tegen: iemand die je iframe in zijn eigen pagina plakt. Het is geen beveiligingsgrens, en het is goed om te weten waarom. De controle steunt op de referrer die de browser meestuurt. Haalt een pagina de referrer weg, dan weet de speler niet waar hij is ingesloten, en in dat geval blokkeert hij niet, omdat privacyinstellingen en referrerbeleid anders legitieme insluitingen zouden breken. Evenzo kan een vastberaden bezoeker die het ondertekende playlistadres uit het netwerkpaneel kopieert het elders afspelen tot het verloopt, omdat segmenten worden gecontroleerd op de handtekening in de link en niet op de pagina die erom vraagt. De openbare kijkpagina van een video wordt evenmin door de domeinlijst beperkt: iedereen met de link kan hem openen.

Zie de lijst dus als een hek dat eerlijke buren buiten houdt. Voor sterkere controle over een stream die je zelf serveert, gebruik je ondertekende links, die hieronder worden beschreven. Heb je het omgekeerde nodig, een video die alleen uitgekozen mensen kunnen bereiken, houd er dan rekening mee dat UFOLOAD geen privévideo's en geen DRM heeft; lees zelf hosten versus gratis platforms versus een videohost voordat je erop vertrouwt voor vertrouwelijke content.

Stap 2: blokkeer landen en IP-adressen

Regels voor landen en IP-adressen worden op twee plekken afgedwongen: wanneer een kijker de kijk- of insluitpagina opent, en bij elk verzoek om de playlist en de segmenten in de leveringslaag. De controles bij levering gebeuren per verzoek en worden niet gecachet, dus een regel die je toevoegt geldt al voor het eerstvolgende segment, en iemand die al een link heeft, kan de regel niet omzeilen door die te bewaren.

  • Landen zijn tweeletterige ISO 3166-1 alpha-2-codes, gescheiden door komma's, bijvoorbeeld US, CN, RU. Het land van de kijker wordt op basis van het IP-adres opgezocht in een geolocatiedatabase. Elke lijst bevat maximaal 100 items.
  • IP-adressen kunnen een los adres zijn zoals 203.0.113.7 of een masker met een sterretje in het laatste octet zoals 203.0.113.*, dat het hele bereik van 256 adressen dekt. IPv6-adressen kunnen exact worden opgegeven.

Twee praktische waarschuwingen. Maskers zijn grof: een .*-masker op een mobiel of kantoornetwerk blokkeert iedere legitieme gebruiker daarachter. En geografie op basis van IP is maar zo nauwkeurig als de adresgegevens erachter. Bezoekers met een VPN of proxy lijken zich te bevinden waar het exitknooppunt staat, dus een landblokkade is een manier om ongewenst verkeer te beperken of te goeder trouw een regionale licentie na te leven, geen garantie.

Tip

Je eigen regels blokkeren jou niet zolang je bent ingelogd als lid van de organisatie die eigenaar is van de video, en ook ons supportteam niet. Dat is bewust, zodat je jezelf niet buitensluit van je bibliotheek als je je eigen land blokkeert, maar het betekent ook dat je moet testen vanuit een uitgelogde browser of een ander netwerk.

Speel je de stream af op je eigen pagina met hls.js (zie een HLS-video insluiten), dan speelt de domeinlijst geen rol, omdat de speler de UFOLOAD-pagina nooit om toestemming vraagt. De controle zit dan in de link zelf. POST /api/v1/files/{id}/links geeft afspeel- en downloadlinks uit met een levensduur van 60 seconden tot 30 dagen. Voeg bind_ip toe om de link aan één IPv4-adres te koppelen, of bind_cookie om hem te koppelen aan een cookiewaarde die je server voor de bezoeker instelt; het antwoord noemt dan de cookie die met het verzoek mee moet.

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"}'

Een korte levensduur in combinatie met koppeling is het sterkste middel dat er is: een link die van je pagina wordt gekopieerd, is binnen enkele minuten waardeloos en vanaf elk ander adres onbruikbaar. De prijs is dat je bij elke paginaweergave links vanaf je server moet uitgeven, het patroon dat de upload- en API-gids en de API-documentatie beschrijven.

Downloaddomeinen

Spelers op de abonnementen Pro en Max kunnen een downloadknop tonen. Een aparte lijst, toegestane downloaddomeinen, werkt precies zoals de insluitlijst, maar bepaalt welke sites de downloadpagina in een frame mogen openen. Laat hem leeg om elke site toe te staan. Bezoekers die de downloadpagina rechtstreeks op UFOLOAD openen, worden niet beperkt, net als bij de kijkpagina.

Stap 3: opslaan en testen

  1. Sla de lijsten op in het tabblad Toegang.
  2. Open een pagina op een toegestaan domein in een privévenster en controleer dat de video afspeelt. Controleer ook de variant met subdomein.
  3. Open dezelfde insluiting vanaf een domein dat niet op de lijst staat, bijvoorbeeld een lokale testpagina die vanaf een andere hostnaam wordt geserveerd, en controleer dat de speler de melding niet beschikbaar toont.
  4. Test een land- of IP-regel terwijl je bent uitgelogd, vanaf een netwerk dat aan de regel voldoet als je er een hebt.
  5. Houd het referrerbeleid van je eigen pagina op een verstandige waarde zoals strict-origin-when-cross-origin. Een beleid van no-referrer verbergt de host voor de speler, die de lijst dan niet kan afdwingen.

Samen dekken een insluitlijst en kortlevende ondertekende links de meeste praktijksituaties: gewoon hotlinken wordt aan de deur tegengehouden, en wie verder gaat, moet moeite doen voor een link die verloopt. Als advertenties beschikbaar zijn en je ze in de speler toont, legt de gids over monetisatie de advertentieformaten uit en hoe pauzes worden ingepland. Alles wat de speler biedt, staat op de functiepagina, en de checklist voor videohosting laat zien welke toegangsmaatregelen je van elke aanbieder mag eisen.

Probeer het met een gratis account

Upload een video en krijg binnen enkele minuten een HLS-speler en een API-sleutel. De limieten per abonnement staan op de prijspagina.