Si tienes archivos alojados en el servidor, en alguna parte debe existir un enlace a éstos, ya sean links HTML o en alguna CSS, y los que se decdican a robar contenido, tarde o temprano lo encontrarán.
Leyendo el blog askapache.com encontré un recurso para proteger los archivos alojados en el servidor con Mod_Rewrite.
Implementación
Este método de protección consiste en colocar una cookie llamada fspammers y asignarle los permisos 445:
GET /hotlink/lovefreedom.mp3 HTTP/1.1 Host: z.askapache.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729) Accept: image/png,image/*;q=0.8,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: https://pixelcoblog.com/desarrollo-e-internet/ Cookie: fspammers=455
Cabeceras Mod-Rewrite
El módulo mod_rewrite tiene acceso a todas las cabeceras HTTP enviadas en una petición, por cada una de éstas en la petición del ejemplo de arriba, podemos usar mod_rewrite para validar.
Ejemplo Mod_Rewrite .htaccess
El siguiente es un ejemplo del archivo .htaccess que bloqueará cualquier petición a cualquiera archivo dentro de la carpeta hotlink (*):
RewriteEngine On RewriteBase / RewriteCond %{HTTP_COOKIE} !^.*fspammers=445.*$ [NC,OR] RewriteCond %{THE_REQUEST} !^[A-Z]{3,9}\ /(.*)\ HTTP/1\.1 [NC,OR] RewriteCond %{HTTP_HOST} !^z\.pixelco\.us$ [NC,OR] RewriteCond %{HTTP_REFERER} !^http://(www|z)\.pixelco\.us.*$ [NC] RewriteRule ^hotlink/.*$ - [F]</p> /*(*)*/
- Cookie: revisa si la cookie fspammers está presente y posee los permisos 445.
- HTTP Protocol: revisa si HTTP 1.1 está siendo usado ya que al parecer muchos robots utilizan la versión 1.0.
- Host: revisa que el anfitrión o HOST que realiza la petición fuera z.pixelco.us.
- Referer: revisa si el sitio que refiere es z.pixelco.us o www.pixelco.us
Corolario
El tema de la protección contra el robo de contenido es complejo, en mi caso personal he probado muchas soluciones que en su mayoría no me han funcionado, incluídos plugins WordPress.
En este caso el ejemplo me pareció interesante, aunque como no soy un experto en este tipo configuraciones me surgen algunas dudas, así que sería bueno que si conoces alguna solución mejor o pruebas con éxite esta que propongo, nos dejes un comentario.
Protecting Files with Advanced Mod_Rewrite Anti-Hotlinking
Post original (en inglés): www.askapache.com/htaccess/anti-hotlinking-mod_rewrite.html