SecurityPlayerAccess control

Bloqueio por domínio e restrições geográficas para vídeo incorporado

Como funcionam no player da UFOLOAD as listas de domínios, os bloqueios por país e IP e os links assinados, como as regras se aplicam e até onde vai cada um.

Quando um vídeo é público, qualquer pessoa que consiga ler o código-fonte da sua página pode copiar o endereço dele. Às vezes isso não é problema. Muitas vezes é: outro site incorpora o seu player e gasta o seu tráfego, uma licença cobre só alguns países ou um bloco de endereços fica raspando a sua biblioteca. A UFOLOAD oferece vários controles para isso, e eles atuam em camadas diferentes. Este artigo explica o que cada um faz, como funcionam as regras de correspondência e até onde cada um vai, para que você os combine com bom senso em vez de confiar num único botão.

Os controles em resumo

ControleO que ele limitaOnde configurar
Domínios de incorporação permitidosQuais sites podem exibir o seu player em um iframeEstúdio do player, aba Acesso
Países bloqueadosEspectadores dos países listadosEstúdio do player, aba Acesso
Endereços IP bloqueadosEndereços individuais e máscarasEstúdio do player, aba Acesso
Domínios de download permitidosQuais sites podem abrir a página de downloadEstúdio do player, aba Acesso
Links assinados com validadePor quanto tempo um endereço de reprodução continua válido, e para quemAPI, POST /files/{id}/links

Tudo nesta lista faz parte das configurações de player e entrega da sua conta e vale para todos os seus vídeos. As regras estão disponíveis em todos os planos; só o botão de download em si é limitado aos planos Pro e Max, como mostra a página de preços.

Passo 1: restrinja a incorporação aos seus domínios

O player incorporado roda dentro de um iframe na página de outra pessoa, e o navegador informa qual é essa página pelo referrer. O player repassa esse host ao servidor, que o compara com a sua lista. Se o host não estiver na lista, o servidor recusa com 403 e o player mostra uma mensagem de indisponibilidade em vez do vídeo.

As regras de correspondência são rígidas, e vale conhecê-las exatamente:

  • example.com permite exatamente esse host e nada mais. Ele não permite www.example.com.
  • *.example.com permite todos os subdomínios de example.com, mas não o example.com sozinho. Para cobrir um site e seus subdomínios, liste as duas entradas.
  • Maiúsculas e minúsculas não importam, e portas e um ponto final são ignorados, então Example.com:8080 corresponde a example.com.
  • A lista comporta até 100 entradas. Uma lista vazia significa que o player pode ser incorporado em qualquer lugar, que é o padrão.
  • Escreva nomes de host simples. Se você colar um endereço completo por engano, só o host dele é mantido.
Atenção

Adicione todos os hosts onde você realmente incorpora o player, incluindo domínios de staging e de pré-visualização, antes de ativar a lista. Um vídeo que de repente mostra a mensagem de indisponibilidade no seu próprio site de staging é a surpresa mais comum.

O que o bloqueio por domínio não faz

Este controle impede o hotlinking casual: alguém colando o seu iframe na própria página. Ele não é uma barreira de segurança, e é melhor saber por quê. A verificação depende do referrer enviado pelo navegador. Se uma página remove o referrer, o player não consegue saber onde está incorporado e, nesse caso, não bloqueia, porque do contrário configurações de privacidade e políticas de referrer quebrariam incorporações legítimas. Da mesma forma, um visitante determinado que copia o endereço assinado da playlist no painel de rede pode reproduzi-lo em outro lugar até ele expirar, porque os segmentos são verificados pela assinatura do link, e não pela página que os solicita. A página pública de exibição de um vídeo também não é restringida pela lista de domínios: qualquer pessoa com o link pode abri-la.

Pense na lista, então, como uma cerca que mantém os vizinhos honestos do lado de fora. Para um controle mais forte sobre um stream que você mesmo serve, use links assinados, descritos abaixo. Se você precisa do contrário, um vídeo que só pessoas escolhidas possam acessar, saiba que a UFOLOAD não tem vídeos privados nem DRM; leia hospedagem própria versus plataformas gratuitas versus uma hospedagem de vídeo antes de confiar nela para conteúdo confidencial.

Passo 2: bloqueie países e endereços IP

As regras por país e IP são aplicadas em dois lugares: quando um espectador abre a página de exibição ou de incorporação, e em cada requisição da playlist e dos segmentos na camada de entrega. As verificações de entrega são feitas a cada requisição, sem cache, então uma regra que você adiciona vale já no próximo segmento, e quem já tem um link não consegue contornar a regra guardando-o.

  • Países são códigos ISO 3166-1 alpha-2 de duas letras separados por vírgulas, por exemplo US, CN, RU. O país do espectador é identificado pelo endereço IP numa base de geolocalização. Cada lista comporta até 100 entradas.
  • Endereços IP podem ser um endereço único, como 203.0.113.7, ou uma máscara com asterisco no último octeto, como 203.0.113.*, que cobre toda a faixa de 256 endereços. Endereços IPv6 podem ser listados de forma exata.

Dois cuidados práticos. Máscaras são instrumentos grosseiros: uma máscara .* numa rede móvel ou de escritório bloqueia todas as pessoas legítimas por trás dela. E a geografia por IP é tão precisa quanto os dados de endereços em que se baseia. Visitantes usando VPN ou proxy parecem estar onde fica o nó de saída, então um bloqueio por país é uma forma de reduzir tráfego indesejado ou de respeitar uma licença regional de boa-fé, não uma garantia.

Dica

Você não é bloqueado pelas suas próprias regras enquanto estiver logado como membro da organização dona do vídeo, e a nossa equipe de suporte também não. Isso é intencional, para que bloquear o seu próprio país não tranque você fora da sua biblioteca, mas também significa que você precisa testar num navegador deslogado ou em outra rede.

Se você reproduz o stream na sua própria página com hls.js (veja como incorporar um vídeo HLS), a lista de domínios não entra em jogo, porque o player nunca pede permissão à página da UFOLOAD. O controle vem do próprio link. POST /api/v1/files/{id}/links emite links de reprodução e download com validade de 60 segundos a 30 dias. Adicione bind_ip para vincular o link a um endereço IPv4, ou bind_cookie para vinculá-lo a um valor de cookie que o seu servidor define para o visitante; a resposta então informa o cookie que deve acompanhar a requisição.

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

Uma validade curta combinada com vinculação é a ferramenta mais forte disponível: um link copiado da sua página fica inútil em poucos minutos e inútil a partir de qualquer outro endereço. O preço é que você precisa emitir links no seu servidor a cada visualização de página, que é o padrão descrito no guia de envio e API e na documentação da API.

Domínios de download

Players nos planos Pro e Max podem exibir um botão de Download. Uma lista separada, a de domínios de download permitidos, funciona exatamente como a lista de incorporação, mas controla quais sites podem abrir a página de download num frame. Deixe-a vazia para permitir todos os sites. Visitantes que abrem a página de download diretamente na UFOLOAD não são restringidos, assim como na página de exibição.

Passo 3: salve e teste

  1. Salve as listas na aba Acesso.
  2. Abra uma página num domínio permitido numa janela anônima e confirme que o vídeo toca. Verifique também a variante com subdomínio.
  3. Abra a mesma incorporação a partir de um domínio que não está na lista, por exemplo uma página de teste local servida por outro nome de host, e confirme que o player mostra a mensagem de indisponibilidade.
  4. Para uma regra de país ou IP, teste deslogado, a partir de uma rede que corresponda à regra, se você tiver uma.
  5. Mantenha a política de referrer da sua própria página num valor sensato, como strict-origin-when-cross-origin. Uma política no-referrer esconde o host do player, que então não consegue aplicar a lista.

Usadas em conjunto, uma lista de incorporação e links assinados de curta duração cobrem a maioria dos casos reais: o hotlinking casual é barrado na porta, e quem tentar ir além precisa se esforçar por um link que expira. Quando há anúncios disponíveis e você os exibe no player, o guia de monetização explica os formatos de anúncio e como os intervalos são programados. A lista de tudo o que está disponível no player está na página de recursos, e o checklist de hospedagem de vídeo mostra quais controles de acesso exigir de qualquer provedor.

Experimente com uma conta gratuita

Envie um vídeo e receba um player HLS e uma chave de API em minutos. Os limites dos planos estão na página de preços.