Referer#

El módulo se utiliza para bloquear el acceso a un sitio ante solicitudes con valores no válidos en el campo de cabecera Referer. Cabe señalar que falsificar una solicitud con un valor de cabecera Referer adecuado es relativamente sencillo, por lo que el objetivo de este módulo no es bloquear exhaustivamente esas solicitudes, sino frenar el flujo masivo de las realizadas por navegadores habituales. También conviene tener en cuenta que los navegadores habituales pueden no enviar el campo Referer incluso para solicitudes válidas.

Ejemplo de Configuración#

valid_referers none blocked server_names
               *.example.com example.* www.example.org/galleries/
               ~\.google\.;

if ($invalid_referer) {
    return 403;
}

Directivas#

referer_hash_bucket_size#

Syntax

referer_hash_bucket_size size;

Predeterminado

referer_hash_bucket_size 64;

Context

server, location

Establece el tamaño del bucket para las tablas hash de referers válidos. Los detalles de la configuración de tablas hash se proporcionan en un documento separado.

referer_hash_max_size#

Syntax

referer_hash_max_size size;

Predeterminado

referer_hash_max_size 2048;

Context

server, location

Establece el tamaño máximo de las tablas hash de referers válidos. Los detalles de la configuración de tablas hash se proporcionan en un documento separado.

valid_referers#

Syntax

valid_referers none | blocked | server_names | string ...;

Predeterminado

Context

server, location

Especifica los valores del campo de cabecera de solicitud Referer que harán que la variable integrada $invalid_referer se establezca en una cadena vacía. De lo contrario, la variable se establecerá en "1". La búsqueda de coincidencias no distingue entre mayúsculas y minúsculas.

Los parámetros pueden ser los siguientes:

none

el campo Referer falta en la cabecera de la solicitud;

blocked

el campo Referer está presente en la cabecera de la solicitud, pero su valor ha sido eliminado por un firewall o servidor proxy; tales valores son cadenas que no comienzan con http:// o https://;

server_names

el campo de cabecera de solicitud Referer contiene uno de los nombres de servidor;

cadena arbitraria

define un nombre de servidor y un prefijo URI opcional. Un nombre de servidor puede tener un "*" al principio o al final. Durante la comprobación, se ignora el puerto del servidor en el campo Referer;

expresión regular

el primer símbolo debe ser un "~". Debe tenerse en cuenta que una expresión se comparará con el texto que comienza después de http:// o https://.

Ejemplo:

valid_referers none blocked server_names
               *.example.com example.* www.example.org/galleries/
               ~\.google\.;

Variables Integradas#

$invalid_referer#

Cadena vacía, si el valor del campo de cabecera de solicitud Referer se considera válido, de lo contrario "1".