En este post vamos a ver de qué manera se asignan las variables en ModSecurity mediante ejemplos.
Supongamos la URL:
https://www.caracol.com:8080/joomla/administrator/index.php?com=login&var1=valor1&var2=valor2
Además vamos a suponer que esta URL se traduce en un archivo que se encuentra en:
/home/caracol/www/joomla/administrator/index.php
Entonces veamos cómo se populan las variables de ModSecurity:
Variable | Valor | Explicación |
---|---|---|
ARGS | login valor1 valor2 |
Valores de los argumentos. La regla se ejectua tres veces en este caso. |
&ARGS | 3 | Número de argumentos |
ARGS:var1 | valor1 | Valor de «var1» |
ARGS:var2 | valor2 | Valor de «var2» |
ARGS_NAMES | com var1 var2 |
Nombre de los argumentos. La regla se ejecuta tres veces en este caso. |
MODSEC_BUILD | 020701900 | Version de mod_security. En este caso es la 2.7.1 revision 9 |
QUERY_STRING | com=login&var1=valor1&var2=valor2 | |
REQUEST_BASENAME | index.php | Nombre del archivo. Notese que si se llama a la URL www.joomla.cl/administrator, el REQUEST_BASENAME estará vacío y no se llena con «index.php» como se pudiera esperar. |
REQUEST_FILENAME | /joomla/administrator/index.php | Nombre del archivo solicitado. |
REQUEST_HEADERS_NAMES | Las posibilidades son: Host, User-Agent, Accept, Accept-Language, Accept-Encoding, Cookie, Connection, If-Modified-Since |
Su aparición depende del cliente que visita la web. La que siempre está es «Host» |
REQUEST_HEADERS:Host | www.caracol.com:8080 | Puede ser una IP si el cliente la utiliza para visitar el servidor. |
REQUEST_LINE | GET /joomla/administrator/index.php?com=login&var1=valor1&var2=valor2 HTTP/1.1 | |
REQUEST_URI | /joomla/administrator/index.php?com=login&var1=valor1&var2=valor2 | URI Completa |