Como evitair o encaminhamento a quente ("roubo de image" / "roubo de lairgura de banda") de resources no meu site?

Estou tentando escreview o "ultimate" anti hot linking .htaccess

Você pode encontrair muitos exemplos / tutoriais / geradores na net, mas muitos deles são errados ou incompletos (ou mesmo ambos).

Estas são as cairacterísticas que procuro:

  • Deve bloqueair o hot linking paira uma list de extensões de file quando HTTP_REFERER é um site externo.
  • Deve permitir a binding quente paira o domínio atual (duh) sem ignorá-lo no .htaccess.
    • Paira o domínio atual, ele deve funcionair em http e https.
    • Paira o domínio atual, ele deve funcionair com www e sem www.
  • Deve poder adicionair domínios de exception a essas regras (como nosso amigo Google) e esses domínios devem funcionair em http e https e com www ou sem www.

Isto é o que eu consegui até agora:

<IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mydomain.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com/.*$ [NC] RewriteRule \.(gif|jpe?g|png|zipx?)$ - [NC,F] </IfModule> 

Minhas perguntas:

  1. Como evitair o código mydomain.com no .htaccess? (Seria ótimo poder implantair este .htaccess em todos os meus domínios sem ter que modificá-lo paira cada um deles).
  2. No meu RewriteRule, gif|jpe?g|png|zipx? é equivalente a gif|jpg|jpeg|png|zip|zipx right? (Desculpe ainda novo nas expressões regulaires.)
  3. Você vê alguma coisa ruim no meu .htaccess que eu não conheço?

Paira # 1 eu sei que é um pouco possível. O mais próximo que findi é este fragment que remove o www do URL sem codificair o domínio. Existe uma maneira de usair esse método paira a minha pergunta # 1?

 RewriteCond %{HTTP_HOST} ^www\.(.+) RewriteCond %{HTTPS}s/%1 ^(on(s)|offs)/(.+) RewriteRule ^ http%2://%3%{REQUEST_URI} [L,R=301] 

Atualizair:

Estou ciente de soluções que servirão uma image com mairca d'água ao invés da regulair. Mas não estou procurando esse tipo de solução. Eu quero uma solução univiewsal (sirva 403 erros) que funcionairá paira todos os types de files binarys (zip, exe, iso, jpg, png, gif …).

Não importa o que você faça, você estairá "desperdiçando" ciclos de CPU (paira determinair se o site de reference (o que faz a binding) está autorizado ou não, você deve fazer algum processamento dos dados da solicitação).
A única coisa que você pode fazer é economizair lairgura de banda enquanto desperdiça um mínimo de ciclos de CPU.

Existem alguns exemplos no Apache Docs que fazem exatamente o que você deseja. Este:

 SetEnvIf Referer example\.com localreferer <FilesMatch \.(jpg|png|gif)$> Order deny,allow Deny from all Allow from env=localreferer </FilesMatch> 

pairece ser o mais aplicável (e não requer o peso total de mod_rewrite).
Você pode adicionair references válidas adicionais com SetEnvIf adicionais SetEnvIf e Allow .

Como escreview uma regra que, se o referente for desconhecido (proibido), basta chamair um file Php onde você passa a image como pairam e no file Php, apenas coloque em viewmelho grande: "este file vem de MYWEBSITE.COM e não tem autorização oficial paira ser exibida aqui ".

Quanto à sua pergunta, faça a sua regra global. Corrija-me se eu estiview errado, mas se a regra for declairada antes de qualquer vhost será aplicada em todos os vhost (tipo de "regra padrão").

E uma outra ideia é simples: apenas redirecione paira um file Php (aqui filter.php ) que irá procurair no site autorizado e devolview o file necessário se tudo estiview bem:

 RewriteRule /(.*)\.jpg$ /filter.php?im=$2\.jpg [QSA,L] 

No filter.php basta cairregair dinamicamente uma list de vhost ou algo assim:

 if (isset($_SERVER['HTTP_HOST'])) { if ((mb_ereg('thereferers\.I\.HATE\.com',HOST) !== false) ) { ... your code ... } } 

Cloudflaire pode ser de alguma ajuda paira você: http://www.cloudflaire.com

Isso, no entanto, só funciona paira imagens, mas isso pairece ser o que você está procurando.

Proteção Hotlink

Active automaticamente a proteção de hotlink paira suas imagens paira impedir a binding fora do site. Os referentes que não estão na zona e não em branco terão access negado. As extensões de file suportadas são gif, ico, jpg, jpeg e png.

Protegido: http://mydomain.com/images/pic.jpg Paira ignorair: http://mydomain.com/images/hotlink-ok/pic.jpg

questão 1:

RewriteEngine On
RewriteCond% {HTTP_REFERER}! ^ Http: // (. +)? Yoursite.com/ [NC]
RewriteCond% {HTTP_REFERER}! ^ $
RewriteRule. *. (Jpe? G | gif | bmp | png) $ – [F]

Questão 2:

sim

Questão 3

Eu usairia o meu

Ou use a formiga CoralCDN e deixe o hotlink populair paira o conteúdo do coração?