Como proteger as imagens do site contra hotlinking

Veja impedir que outros sites usem imagens e outros arquivos da sua hospedagem

22/01/2024

Como proteger as imagens do site contra hotlinking

Como proteger as imagens do site contra hotlinking

Introdução: o que é hotlinking?

Quando sites externos utilizam suas imagens diretamente, isso é conhecido como hotlinking. Essa prática pode ser prejudicial, pois consome recursos do seu servidor e pode aumentar os custos de hospedagem.

Neste artigo veremos uma solução eficaz para resolver este problema, não apenas impedindo o hotlinking de imagens, como de quaisquer outros arquivos do seu site.

Configuração do .htaccess

Para iniciar, acesse a pasta de imagens do seu site e crie um arquivo com o nome .htaccess e adicione o seguinte conteúdo, substituindo seudominio.com pelo domínio do seu site:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https://(www\.)?seudominio\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif|webp|avif|css|js|mp4|avi|mov)$ - [NC,F,L]

Este código agora bloqueia não só imagens (incluindo formatos modernos como WEBP e AVIF), mas também arquivos CSS, JavaScript e vídeos comuns (MP4, AVI, MOV), se eles forem acessados de domínios que não sejam o seu ou sem um referer.

Implementação de Cabeçalhos HTTP adicionais

O cabeçalho HTTP Content-Security-Policy ajuda a prevenir certos tipos de ataques, incluindo o hotlinking. Ao configurá-lo no .htaccess, você instrui os navegadores a restringir como os recursos podem ser carregados no site:

<FilesMatch "\.(jpg|jpeg|png|gif|webp|avif|css|js|mp4|avi|mov)$">
    Header set Content-Security-Policy "default-src 'self' https://seudominio.com https://www.seudominio.com"
</FilesMatch>

No código acima, substitua seudominio.com pelo domínio do seu site.

Bloqueio de Hotlinking em Hospedagem Windows

Para sites hospedados em servidores Windows que usam IIS, o arquivo web.config é o equivalente ao .htaccess em servidores Apache. Para prevenir o hotlinking, você precisará adicionar regras específicas no web.config, conforme abaixo:

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Prevent Hotlinking">
          <match url=".*\.(jpg|jpeg|png|gif|webp|avif|css|js|mp4|avi|mov)$" />
          <conditions>
            <add input="{HTTP_REFERER}" pattern="^$" />
            <add input="{HTTP_REFERER}" pattern="^https://(www\.)?seudominio\.com" negate="true" />
          </conditions>
          <action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Access is forbidden." />
        </rule>
      </rules>
    </rewrite>
    <httpProtocol>
      <customHeaders>
        <add name="Content-Security-Policy" value="default-src 'self' https://seudominio.com https://www.seudominio.com" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration>

Neste código, você deve substituir seudominio.com pelo domínio do seu site.

Conclusão

Essas técnicas simples garantem que apenas seu domínio possa utilizar seus recursos de mídia, mantendo a segurança e a eficiência do seu site. Lembre-se de testar suas configurações para assegurar seu funcionamento adequado.

Domínios hospedados
Clientes satisfeitos