Pegue os engraçadinhos que fazem hotlink de imagens

Você está cansado dessas pessoas que pegam a URL das suas imagens e lascam no blog/site delas e acabam usando a sua banda sem que você tenha dado permissão? Copiar as imagens do meu blog para outros sites eu não vejo problema, mas usar a banda do meu servidor eu não gosto.

Pois bem, a tirinha de hoje do Nerdson ilustra muito bem o problema dos hotlinks de imagens. Ela é, como sempre, muito didática.

(Como a tirinha é muito grande, adianto que depois dela coloco a solução para o problema do hotlink de imagens)

(A propósito, eu não estou fazendo hotlink da tirinha, copiei a imagem para o meu servidor 🙂 )

Para resolver esse problema, você pode editar o .htaccess do seu servidor (caso ele seja Apache), e incluir as seguintes regras:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://([^.]*\.)?meusite\.com\.br
RewriteCond %{HTTP_REFERER} !^http://([^.]*\.)?(google|yahoo|hotmail)\.com
RewriteRule (minha_pasta_de_imagens.*\.(gif|jpg|jpeg|png)$) http://www.meusite.com.br/forbid.jpg [L]

Vamos entender linha por linha o código acima:

RewriteEngine On

Obviamente ativa o Módulo Rewrite do Apache para que ele possa re-escrever os endereços de acordo com as regras. (maiores informações sobre o mod_rewrite)

As próximas regras só ativarão a reescrita se todas forem cumpridas. Caso uma delas não seja verdadeira, o apache vai retornar a página solicitada.

RewriteCond %{HTTP_REFERER} !^$

Retorna verdadeiro se o Referer não for vazio. Se for vazio, é sinal de que vem do próprio site o pedido.

RewriteCond %{HTTP_REFERER} !^http://([^.]*\.)?meusite\.com\.br

Retorna verdadeiro se o Referer não for do domínio do seu site/blog. A expressão ([^.]*\.)? quer dizer “qualquer sequência de caracteres que não seja ponto seguida de um ponto”. A interrogação no final da expressão indica que ela é opcional. Neste caso você libera o acesso a http://www.meusite.com.br ou http://qualquercoisa.meusite.com.br ou http://meusite.com.br

RewriteCond %{HTTP_REFERER} !^http://([^.]*\.)?(google|yahoo|hotmail)\.com

Retorna verdadeiro se o Referer não for dos domínios *.google.com, *.yahoo.com, *.hotmail.com.
Faço isso para excluir da regra esses domínios para evitar que pessoas que lêem seu site/blog pelo feed ou por webmail não sejam afetadas pela regra. Você pode adicionar outras regras parecidas com essas para excluir outros domínios.

RewriteRule (minha_pasta_de_imagens.*\.(gif|jpg|jpeg|png)$) http://www.meusite.com.br/forbid.jpg [L]

Finalmente a regra que redireciona o pedido para a imagem que você quiser.

IMPORTANTE: Substitua minha_pasta_de_imagens pela pasta do seu servidor que contém as imagens. No caso dos blogs baseados em WordPress, é a pasta wp-content/uploads. Essa regra só vale para os arquivos gif, jpeg, jpg e png.

O [L] do final da regra indica que o apache não deve usar outra regra depois dessa, muito útil para quem tem outras regras no seu mod_rewrite.

No caso do meu blog, coloquei uma imagem marota (pode copiar à vontade, mas sem fazer hotlink, 🙂 ) para aparecer nos sites/blogs dos que ficam fazendo hotlink das minhas imagens.

te peguei

Seja criativo, mas não baixe o nível. 🙂

6 comentários em “Pegue os engraçadinhos que fazem hotlink de imagens”