htaccess [UserAgent]: Hacer determinada acción dependiendo del UserAgent del usuario

Hace bastante que puse dos artículos sobre htaccess, y dado que ha pasado ya un tiempo, refrescaré un poco la base:

¿Qué es htaccess?

En cada carpeta que tengamos compartida (hosteada) podemos poner un archivo .htaccess (noten el punto al inicio del nombre, esto indica que está oculto). Este archivo será nuestro policía por llamarlo de alguna forma, pues en él podemos escribir reglas o normas que nos servirán para manipular/administrar el acceso a esa misma carpeta donde esté el archivo, a la carpeta y a los archivos (y subcarpetas) que esta misma contenga.

Dicho de forma simple. Si tengo hosteada la carpeta “/test/“, haciendo uso de un .htaccess puedo configurar qué IPs deseo que accedan y cuáles no, configurar si deseo que cuando alguien entre a esta carpeta automáticamente le redireccione a otro sitio, y un MUY largo etc.

De veras les recomiendo que lean los dos artículos previos:

Pasemos un poco a lo que abordaré en este post específicamente.

Utilidad No.1

Lo que deseamos hacer es:

  1. Si un usuario usa Internet Explorer no le abra el sitio, que le redireccione al sitio de Firefox para que se instale un navegador de verdad.

Sabiendo que el UserAgent que identifica a Internet Exploter es: MSIE

Ya tenemos todo lo necesario 🙂

La lógica de funcionamiento sería:

  1. Identificar si el usuario usa IE o no.
  2. Si usa IE no le mostrará el sitio, en vez de hacer esto lo que sucederá es que le abrirá el sitio de Mozilla.
  3. Si no usa IE le abrirá el sitio nuestro sin problemas.

Para lograr esto debemos poner en nuestro archivo .htaccess (si no existe, lo crean) las siguientes líneas:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*MSIE.*$ [NC] RewriteRule .* Http://www.mozilla.org/en-US/firefox/new/
</IfModule>

Y esto es todo, así de simple.

Con estas líneas lo que indicamos es:

  1. Si el módulo mod_rewrite está activo:
  2. Inicia el motor rewrite y:
  3. Si se cumple la condición de que en alguna parte del UserAgent contiene MSIE entonces:
  4. Aplica la regla de: redirecciona al usuario al sitio -» Http://www.mozilla.org/en-US/firefox/new/
  5. Se terminó ya, deja de usar el módulo mod_rewrite

Obviamente, pueden cambiar la dirección a la que será redireccionado el usuario, este es solo un ejemplo.

Ahora vamos con otra utilidad… 😉

Utilidad No.2

Por ejemplo, deseamos poner algún contenido en internet en alguna carpeta de nuestro servidor web, pero deseamos que solo determinadas personas accedan, podemos bien proteger la carpeta con password usando Apache sí, pero si queremos no complicarnos tanto… podemos:

  1. Lee el UserAgent del usuario.
  2. Si el UserAgent tiene la palabra “topsecret” en algún lado:
  1. Déjalo que acceda a la carpeta
  • Si el UserAgent NO tiene la palabra “topsecret” en ningún lado:
  1. Muestra un cartel de Acceso Denegado.

Para lograr esto, el código es extremadamente similar al anterior… la principal variación es el símbolo de exclamación “!” en la línea de verificación del UserAgent:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !^.*topsecret.*$ [NC] RewriteRule .* Http://www.google.com
</IfModule>

Acá no hay mucho que explicar pues ya expliqué el anterior, este como ya dije tiene como principal diferencia el símbolo de exclamación, lo cual significa:

  • Si NO contiene topsecret en algún lado del UserAgent…

Bueno, esto es todo por el momento 😀

Espero les haya sido de utilidad, aún hay mucho por hablar de htaccess, aún me queda mucho por aprender 🙂
Saludos


11 comentarios

  1.   k301 dijo

    No sé si comentar esto, solo añadir que en el blackhat del 2012 se mencionó una vulnerabilidad de htaccess. En dragonjar lo detallan todo muy bien y explican como corregirlo por si alguien le interesa:

    Enlace

    1.    Martin dijo

      @KZKG muy buen aporte, excelente.
      @k3D1 me acordé enseguida de la vulnerabilidad pero no tenía claro de qué se trataba (me estará visitando el alemán!? jue pucha!).
      Gracias por el link!

      1.    KZKG^Gaara dijo

        Thanks, ya que no aporto en cuanto a noticias, intento aportar en cuanto a cosas más técnicas 🙂

    2.    KZKG^Gaara dijo

      Gracias, no conocía de esto 😉

  2.   k301 dijo

    He lanzando un comentario antes pero al parecer no se ha publicado. En fin, lo repito para quien le interese, es una publicación en dragonjar para prevenir una vulnerabilidad de htaccess:
    http://www.dragonjar.org/htexploit-herramienta-para-saltar-proteccion-con-archivos-htaccess.xhtml

    1.    KZKG^Gaara dijo

      Mis disculpas, el filtro antiSPAM a veces hace cosas que ni yo entiendo, habían algunos comentarios en cola de SPAM sin motivo aparente, ya los aprobé.
      Disculpas de nuevo.

      1.    k301 dijo

        No hay problema, siempre es bueno que los comentarios que contengan enlaces deban ser aprobados, mi confusión vino de como el primero le envíe con una etiqueta html, pensé que había habido algún problema.

        Y nada, ánimo con los post técnicos que están muy bien, en este blog he encontrado mucho material excelente.

  3.   Elynx dijo

    Agregado a Favoritos!

  4.   Javier dijo

    Hola,
    como podria hacer lo mismo que explicas para firefox pero para internet explorer

    1.    KZKG^Gaara dijo

      No entendí qué es lo que deseas hacer.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.