Bloquear o permitir acceso según user-agent

Bloquear o permitir acceso según user-agent

Fecha: 12-Oct-2011 | Autor: .
Guardado en: Desarrollo Web

Una buena opción si necesitamos restringir el acceso a solo nosotros, o solamente un grupo de personas (por ejemplo, mientras se desarrolla un proyecto), podría ser esta que te proponemos hoy: controlar el acceso mediante el user-agent desde el .htaccess.

Esto salió de que ayer, intentaba la forma de poder acceder yo (desde 2 equipos) a un site en desarrollo, pero que para el resto del mundo el sitio apareciera con un “Próximamente…”, a primeras lo hice restringiendo el acceso por IP desde el .htaccess:

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REMOTE_HOST} !^123\.45\.67\.89
RewriteCond %{REQUEST_URI} !/no-acceso.html$
RewriteRule $ /no-acceso.html [R=302,L]

(donde 123.45.67.89 sería nuestra IP)

Pero luego noté la incomodidad de este sistema (por ser mi IP variable, lo cuál significaba cada 12hs tener que editar el .htaccess y cambiar la IP con “permiso de acceso”, así como si me movía a otro sitio y cambiaba la IP)… entonces se me ocurrió esta forma:

Restringir el acceso solamente a un user-agent específico (e inventado) y combinar eso con el plugin de Firefox: User Agent Switcher. De esta forma, sólo permitimos el acceso a un user-agent X (por ejemplo nuestro nombre) y creamos con el plugin de Firefox dicho User Agent (ficticio) y lo activamos para navegar, de modo que el .htaccess nos dejará pasar solamente a nosotros.


¿Por qué este anuncio?

El código para restringir el acceso desde .htaccess usando user-agent es el siguiente:

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !Nuestro-User-Agent+
RewriteCond %{REQUEST_URI} !/no-acceso.html$
RewriteRule $ /no-acceso.html [R=302,L]

Debemos tener en cuenta de no utilizar un user-agent ya existente o que sea demasiado “sencillo” para cosas que sean delicadas ;)

Update: Como nos sugiere Mariano en un comentario, para poder usarlo también desde Chrome de forma muy sencilla, simplemente debemos crearnos un acceso directo al Chrome y agregar esto en la linea de ejecución: …./chrome.exe –user-agent=”Your own user agent string”.


Si te gustó, comparte:
Y si fue de ayuda, puedes comprarme un café:
...ó la cena si quieres! ;)

Etiquetado como: , , , ,


Gravatar

Marcelo


Desarrollador web, trabajando desde Montevideo, Uruguay para todo el mundo. Me especializo en Diseño web, Maquetación HTML5 & CSS3, jQuery y Programación PHP & MySQL, e intento aprender un poco más cada día.

5 comentarios, participa!

  1. mkb

    12. Oct, 2011

    Muy bueno. Gracias por el aporte. Me viene al pelo.

  2. Mariano

    22. Oct, 2011

    Excelente tip, muy útil. Gracias.
    Para complementar con el Chrome también se puede personalizar el Agent de la siguiente manera, editan o crean un acceso directo y agregan esto en la linea de ejecución: …./chrome.exe –user-agent=”Your own user agent string”
    Saludos,

  3. Marcelo

    24. Oct, 2011

    Gracias Mariano por el Tip.. es muy bueno y no lo conocía ;)
    Voy a incluirlo en el contenido del artículo!

    Un saludo!

  4. Claudio

    20. Nov, 2011

    Otra forma quizás un poco más técnica pero con posibilidad de cambiar el cliente, referer y demás es usar Opera DragonFly que viene con, para mi el mejor navegador de todos, Opera.

  5. Muy buen tip… Justo lo que andaba buscando.

Deja tu opinión