Bloquear o permitir acceso según user-agent
Fecha: 12-oct-2011 | Autor: Marcelo.
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.
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”.
mkb
12. oct, 2011
Muy bueno. Gracias por el aporte. Me viene al pelo.
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,
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!
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.