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
| Controle | O que ele limita | Onde configurar |
|---|---|---|
| Domínios de incorporação permitidos | Quais sites podem exibir o seu player em um iframe | Estúdio do player, aba Acesso |
| Países bloqueados | Espectadores dos países listados | Estúdio do player, aba Acesso |
| Endereços IP bloqueados | Endereços individuais e máscaras | Estúdio do player, aba Acesso |
| Domínios de download permitidos | Quais sites podem abrir a página de download | Estúdio do player, aba Acesso |
| Links assinados com validade | Por quanto tempo um endereço de reprodução continua válido, e para quem | API, 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.compermite exatamente esse host e nada mais. Ele não permitewww.example.com.*.example.compermite todos os subdomínios deexample.com, mas não oexample.comsozinho. 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:8080corresponde aexample.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.
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, como203.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.
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.
Links assinados para o seu próprio player
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.
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
- Salve as listas na aba Acesso.
- 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.
- 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.
- Para uma regra de país ou IP, teste deslogado, a partir de uma rede que corresponda à regra, se você tiver uma.
- Mantenha a política de referrer da sua própria página num valor sensato, como
strict-origin-when-cross-origin. Uma políticano-referreresconde 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.
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.