Todos os produtos
Search
Central de documentação

Object Storage Service:Hotlink protection

Última atualização: Jul 03, 2026

Se o hotlinking de outros sites aumentar seus custos de tráfego no OSS, configure uma lista de permissões ou de bloqueios de Referer para restringir o acesso.

Como funciona

Quando um navegador solicita um arquivo do OSS, o cabeçalho HTTP Referer identifica a página de origem da requisição. O OSS valida esse valor de Referer para verificar a origem da requisição.

Após a configuração da proteção contra hotlink, o OSS avalia as requisições na seguinte ordem:

  1. Verificação de Referer vazio: O OSS verifica se o Referer está vazio. Nesse caso, aplica-se a seguinte lógica:

    • Se você permitir requisições com Referer vazio, a requisição será permitida.

    • Se você não permitir requisições com Referer vazio e a lista de permissões estiver vazia, a requisição será permitida.

    • Se você não permitir requisições com Referer vazio e a lista de permissões não estiver vazia, a requisição será negada.

    Caso o Referer não esteja vazio, a verificação prossegue para a próxima etapa.

  2. Verificação da lista de bloqueios: O OSS verifica se o Referer corresponde a alguma entrada na lista de bloqueios. Uma correspondência resulta em negação imediata — a lista de permissões não é verificada. Caso contrário, o processamento continua.

  3. Verificação da lista de permissões: O OSS verifica se o Referer corresponde a alguma entrada na lista de permissões. Uma correspondência permite a requisição; a ausência de correspondência a nega.

Procedimento

  1. Acesse a lista de Buckets e clique em no bucket desejado.

  2. No painel de navegação à esquerda, escolha Content Security > Hotlink Protection. Ative a opção Hotlink Protection e configure as regras de Referer conforme necessário:

    • Referer Whitelist: Domínios com permissão para acessar seus recursos. Insira um por linha.

    • Referer Blacklist: Domínios com acesso negado. Insira um por linha. A lista de bloqueios tem prioridade sobre a lista de permissões.

    • Allow Empty Referer: Define se o sistema deve permitir requisições sem cabeçalho Referer, como acessos diretos pelo navegador.

    • Truncate QueryString: Define se o sistema deve ignorar a string de consulta após ? na URL durante a correspondência. Consulte as Regras de análise de string de consulta.

    As regras de Referer aceitam curingas:

    Curinga

    Descrição

    Exemplo

    *

    Corresponde a zero ou mais caracteres.

    *.example.com corresponde a http://www.example.com e https://help.example.com.

    ?

    Corresponde a exatamente um caractere.

    http://www.aliyun?.com corresponde a http://www.aliyunc.com.

    As regras de Referer também aceitam domínios ou endereços IP com portas, como http://www.example.com:8080 e 10.10.10.10:8080.

    Nota

    A correspondência diferencia o protocolo. Uma regra para http://www.aliyun.com não corresponde a https://www.aliyun.com. Adicione entradas tanto para HTTP quanto para HTTPS.

  3. Clique em Save para aplicar as configurações.

Casos de uso

Permitir acesso apenas de sites confiáveis

Permita que apenas sites especificados acessem seus recursos do OSS, mantendo o acesso direto pelo navegador.

Etapa 1: Obter o Referer

Antes de configurar a regra, identifique o Referer das requisições aos seus recursos do OSS:

  • Usar logs em tempo real do OSS: Acesse a lista de Buckets. Na página do bucket desejado, escolha Logging > Real-time Log Query e localize o campo referer. Um hífen (-) indica uma requisição com Referer vazio.

  • Usar ferramentas de desenvolvedor do navegador: Pressione F12 para abrir as ferramentas de desenvolvedor. No painel Network, verifique o cabeçalho Referer da requisição.

Etapa 2: Configurar a regra de Referer

Parâmetro

Valor

Descrição

Referer Whitelist

https://www.aliyun.comhttp://www.aliyun.com*.console.aliyun.com

Adicione domínios confiáveis para HTTP e HTTPS. Inclua o domínio do console para manter as funções de gerenciamento operacionais.

Referer Blacklist

Deixar vazio

Nenhuma origem a ser bloqueada.

Allow Empty Referer

Allow

Permite acesso direto pelo navegador e por clientes que omitem o Referer.

Truncate QueryString

Allow

Ignora a string de consulta da URL para uma correspondência flexível.

Etapa 3: Verificar a configuração

# Simulate a request from a whitelisted Referer (expected to succeed)
curl -e "http://www.aliyun.com" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

# Simulate a request from a non-whitelisted Referer (expected to return AccessDenied)
curl -e "http://www.example.com" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

# Simulate a request with an empty Referer (expected to succeed)
curl http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

Bloquear sites maliciosos

Permita o acesso da maioria das origens, mas bloqueie sites maliciosos específicos usando uma lista de bloqueios.

Etapa 1: Identificar o Referer

Acesse a lista de Buckets. Na página do bucket desejado, escolha Logging > Real-time Log Query. Filtre por registros de tráfego anormal e verifique o campo referer para identificar o domínio malicioso.

Etapa 2: Configurar a regra de Referer

Parâmetro

Valor

Descrição

Referer Whitelist

*

Permite acesso de todas as origens.

Referer Blacklist

*bad-site.examplehttp://malicious-site.examplehttps://malicious-site.example

Adicione os domínios maliciosos. Use curingas para bloquear um domínio inteiro e seus subdomínios.

Allow Empty Referer

Allow

Garante o funcionamento do acesso direto e de clientes legítimos.

Truncate QueryString

Allow

Ignora a string de consulta da URL para uma correspondência flexível.

Etapa 3: Verificar a configuração

# Simulate a request from a normal website (expected to succeed)
curl -e "http://www.example.com" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

# Simulate a request from a blacklisted website (expected to return AccessDenied)
curl -e "http://bad-site.example" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

# Simulate a request with an empty Referer (expected to succeed)
curl http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

Permitir acesso de mini programas do WeChat

Os mini programas do WeChat usam um formato fixo de Referer: https://servicewechat.com/{appid}/{version}/page-frame.html. Configure sua regra para corresponder a esse formato.

Etapa 1: Identificar o formato do Referer

O formato do Referer para mini programas do WeChat é fixo e previsível, permitindo a configuração direta com um curinga. Para confirmar o formato exato, acesse a lista de Buckets e verifique o campo referer na seção Logging > Real-time Log Query do bucket desejado.

Etapa 2: Configurar a regra de Referer

Parâmetro

Valor

Descrição

Referer Whitelist

*servicewechat.com*.console.aliyun.com

O curinga abrange todos os AppIDs e versões dos mini programas. Inclua o domínio do console para manter as funções de gerenciamento operacionais.

Referer Blacklist

Deixar vazio

Nenhuma origem a ser bloqueada.

Allow Empty Referer

Allow

Alguns mini programas omitem o Referer. Permitir Referers vazios garante a compatibilidade.

Truncate QueryString

Allow

Ignora a string de consulta da URL para uma correspondência flexível.

Etapa 3: Verificar a configuração

# Simulate a request from a WeChat mini program (expected to succeed)
curl -e "https://servicewechat.com/wx1234567890abcdef/1/page-frame.html" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

# Simulate a request from another source (expected to return AccessDenied)
curl -e "http://www.example.com" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

# Simulate a request with an empty Referer (expected to succeed)
curl http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

Permitir acesso ao console do OSS

Após ativar a proteção contra hotlink, adicione o domínio do console do OSS à lista de permissões para manter as funções de gerenciamento operacionais.

Etapa 1: Configurar a regra

Parâmetro

Valor

Descrição

Referer Whitelist

*.console.aliyun.com

O curinga abrange todos os subdomínios do console do OSS, garantindo que as visualizações funcionem em todas as regiões.

Referer Blacklist

Deixar vazio

Nenhuma origem a ser bloqueada.

Allow Empty Referer

Allow

Permite o funcionamento do acesso direto e das visualizações no console.

Truncate QueryString

Allow

Ignora a string de consulta da URL para uma correspondência flexível.

Etapa 2: Verificar a configuração

# Simulate access from the console (expected to succeed)
curl -e "https://oss.console.alibabacloud.com" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

Você também pode verificar visualizando e baixando um arquivo diretamente pelo console do OSS.

Bloquear acesso direto via URL

Não permita Referers vazios para exigir que todas as requisições tenham origem em um site especificado, impedindo o acesso direto por URL.

Importante

Essa configuração bloqueia todo o acesso direto, incluindo favoritos e links em e-mails. Alguns plugins de navegador, gerenciadores de download e reprodutores de vídeo podem não funcionar, pois frequentemente omitem o Referer.

Etapa 1: Determinar o Referer

Identifique todas as combinações de domínio e protocolo do seu site para cobrir todos os cenários legítimos de acesso.

Etapa 2: Configurar a regra

Parâmetro

Valor

Descrição

Referer Whitelist

https://www.example.comhttp://www.example.com*.console.aliyun.com

Domínio do seu site. Adicione todas as combinações necessárias de domínio e protocolo. Inclua o domínio do console para manter as funções de gerenciamento operacionais.

Referer Blacklist

Deixar vazio

Nenhuma origem a ser bloqueada.

Allow Empty Referer

No

Bloqueia o acesso direto pela barra de endereços do navegador.

Truncate QueryString

Allow

Ignora a string de consulta da URL para uma correspondência flexível.

Etapa 3: Verificar a configuração

# Simulate a request from the website (expected to succeed)
curl -e "http://www.example.com" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

# Simulate direct access (expected to return AccessDenied)
curl http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

# Simulate a request from another website (expected to return AccessDenied)
curl -e "http://other.example" http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/demo.txt

Regras de análise de string de consulta

Se você desativar a opção Truncate query string, o OSS analisa a string de consulta da seguinte forma:

Regra

Descrição

A string de consulta não passa por decodificação de URL.

Para uma URL de requisição http://www.example.com/?job_id=task$01, uma regra de lista de permissões ou bloqueios definida como http://www.example.com/?job_id=task%2401 não corresponderá.

Os parâmetros não diferenciam maiúsculas de minúsculas.

Para uma URL de requisição http://www.example.com/?ACTION=NOP, uma regra de lista de permissões ou bloqueios definida como http://www.example.com/?action=nop corresponderá.

A ordem dos parâmetros é significativa.

Para uma URL de requisição http://example.com/?b=c&a=b, uma regra de lista de permissões ou bloqueios definida como http://example.com/?a=b&b=c não corresponderá.

Considerações para produção

  • Risco de bypass de cache da CDN: Requisições de hotlink podem atingir um nó de borda da CDN e serem servidas do cache, contornando a proteção contra hotlink do OSS. Para evitar isso, configure as mesmas regras de proteção contra hotlink de Referer na sua CDN.

  • Impacto da Referrer-Policy do navegador: Os navegadores suportam o cabeçalho Referrer-Policy, que controla a quantidade de informações de Referer enviadas em requisições cross-origin. Políticas como no-referrer fazem o navegador omitir o Referer, e o OSS trata essas requisições como tendo Referer vazio. Considere esse comportamento ao configurar as regras.

  • Compatibilidade de reprodução de vídeo: A tag nativa video do navegador envia uma requisição inicial com Referer e requisições subsequentes de dados de mídia com Referer vazio. Para garantir a reprodução do vídeo, você deve permitir o acesso para requisições com Referer vazio.

Cotas e limites

  • acesso anônimo ou uma URL assinada. Chamadas de API assinadas com uma AccessKey (requisições que incluem um cabeçalho Authorization) não são restritas pelas regras de proteção contra hotlink.

  • Limite de tamanho da lista: A soma das listas de permissões e de bloqueios de Referer não pode exceder 20 KB.

  • Escopo: A proteção contra hotlink aplica-se no nível do bucket. Não há suporte para regras por objeto ou por diretório.

Perguntas frequentes

Por que a proteção contra hotlink não está funcionando?

Verifique os itens abaixo nesta ordem:

  1. Verificação do ambiente do navegador: Certos ambientes, como mini programas do WeChat ou iframes, podem modificar o Referer. Use os logs em tempo real do OSS ou as ferramentas de desenvolvedor do navegador para identificar o Referer real e ajuste sua regra.

  2. Formato do Referer: Verifique se a entrada do Referer inclui o prefixo de protocolo (http:// ou https://). A omissão faz com que a regra falhe.

  3. Bypass de cache da CDN: Se sua CDN não tiver proteção contra hotlink, as requisições podem contornar a validação do OSS. Configure regras correspondentes de proteção contra hotlink na sua CDN.

Resolução de erros de acesso negado em mini programas do WeChat

Os mini programas do WeChat usam um Referer fixo que começa com https://servicewechat.com/. Adicione *servicewechat.com à sua lista de permissões para permitir o acesso de todos os mini programas.

Resolução de erros de acesso negado para acesso direto

O acesso direto pelo navegador envia um Referer vazio. Se Referers vazios não forem permitidos, o acesso será negado. Para permitir o acesso direto, altere a opção Allow Empty Referer nas configurações de proteção contra hotlink para Allow.

Resolução do erro InlineDataTooLarge

A soma das listas de permissões e de bloqueios de Referer excede o limite de 20 KB. Use curingas para consolidar regras ou remova entradas desnecessárias.