<!-- review: finished -->

<a id="http-referer"></a>

# 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 campo `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.

<a id="configuration-example-37"></a>

## Ejemplo de configuración

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

if ($invalid_referer) {
    return 403;
}
```

<a id="directives-38"></a>

## Directivas

<a id="index-0"></a>

<a id="referer-hash-bucket-size"></a>

### referer_hash_bucket_size

| [Sintaxis](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | `referer_hash_bucket_size` size;   |
|--------------------------------------------------------------------------------------------|------------------------------------|
| Predeterminado                                                                             | `referer_hash_bucket_size 64;`     |
| [Contexto](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | 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](https://es.angie.software//angie/docs/configuration/configfile.md#configure-hashes) separado.

<a id="index-1"></a>

<a id="referer-hash-max-size"></a>

### referer_hash_max_size

| [Sintaxis](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | `referer_hash_max_size` size;   |
|--------------------------------------------------------------------------------------------|---------------------------------|
| Predeterminado                                                                             | `referer_hash_max_size 2048;`   |
| [Contexto](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | 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](https://es.angie.software//angie/docs/configuration/configfile.md#configure-hashes) separado.

<a id="index-2"></a>

<a id="valid-referers"></a>

### valid_referers

| [Sintaxis](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | `valid_referers` `none` | `blocked` | `server_names` | string ...;   |
|--------------------------------------------------------------------------------------------|----------------------------------------------------------------------|
| Predeterminado                                                                             | —                                                                    |
| [Contexto](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | server, location                                                     |

Especifica los valores del campo de cabecera de solicitud `Referer` que harán que la variable integrada [$invalid_referer](#v-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:

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

<a id="built-in-variables-8"></a>

## Variables integradas

<a id="v-invalid-referer"></a>

### `$invalid_referer`

Cadena vacía, si el valor del campo de cabecera de solicitud `Referer` se considera [válido](#valid-referers), de lo contrario "1".
