lunes, 30 de agosto de 2010

Bloquear acceso con .htaccess

En ocasiones una página es víctima de un ataque, spammers, usuarios con malas intenciones o robots, y deseariamos que no pudieran acceder a la web.
Pues bien, si el servidor que usamos es apache, podemos librarnos de ellos tan solo conociendo su ip, mediante la creación de un fichero .htaccess y subiendolo a la raiz de nuestra página.

Bloquear por IP

Si sabemos de una IP que está accediendo de forma maliciosa a nuestra web, hay que añadir el fichero .htaccess con las siguientes líneas (systituyendo la IP por la que has identificado):

#Bloquear IP
order allow,deny
deny from 11.22.33.44
allow from all

Para várias IP:

#Bloquear IP
order allow,deny
deny from 11.22.33.44
deny from 11.22.33.45
allow from all

Bloquear Agente

Si lo que queremos hacer es bloquear un Agente, el .htaccess deberá contener (en este ejemplo robit es el agente que deseamos bloquear) :

#Bloquear Agente
rewriteEngine on
rewriteCond %{HTTP_USER_AGENT} ^robit
rewriteRule .* - [F]


Para varios:

#Bloquear Agente
rewriteEngine on
rewriteCond %{HTTP_USER_AGENT} ^robit [OR]
rewriteCond %{HTTP_USER_AGENT} ^bitoy
rewriteRule .* - [F]


Bloquear Referer


Si lo que se desea es bloquear el acceso desde una página:

#Bloquear Referer
rewriteEngine on
rewriteCond %{HTTP_REFERER} ^http(s)?://(www.)?indeseada.com*$
rewriteRule .* - [F]

2 comentarios:

Claudio dijo...

Gracias por el aporte, andaba buscando para bloquear por referencia y funciona perfectamente.

Anónimo dijo...

Una pregunta, para denegar el acceso por IPs se podria hacer de alguna forma con write y cond o solo usando las reglas de deny y allow?.
Y otra cosa esto es una especie de analizador sintactico-semantico?