<!-- review: finished -->

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

# Referer

O módulo é usado para bloquear o acesso a um site para solicitações com valores inválidos no campo de cabeçalho `Referer`. Deve-se ter em mente que fabricar uma solicitação com um valor apropriado no campo `Referer` é bastante fácil, e portanto o propósito pretendido deste módulo não é bloquear tais solicitações completamente, mas bloquear o fluxo em massa de solicitações enviadas por navegadores regulares. Também deve ser levado em consideração que navegadores regulares podem não enviar o campo `Referer` mesmo para solicitações válidas.

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

## Exemplo de Configuração

```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>

## Diretivas

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

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

### referer_hash_bucket_size

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `referer_hash_bucket_size` size;   |
|-------------------------------------------------------------------------------------------|------------------------------------|
| Padrão                                                                                    | `referer_hash_bucket_size 64;`     |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | server, location                   |

Define o tamanho do bucket para as tabelas hash de referers válidos. Os detalhes da configuração de tabelas hash são fornecidos em um [documento](https://pt.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

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `referer_hash_max_size` size;   |
|-------------------------------------------------------------------------------------------|---------------------------------|
| Padrão                                                                                    | `referer_hash_max_size 2048;`   |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | server, location                |

Define o tamanho máximo das tabelas hash de referers válidos. Os detalhes da configuração de tabelas hash são fornecidos em um [documento](https://pt.angie.software//angie/docs/configuration/configfile.md#configure-hashes) separado.

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

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

### valid_referers

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `valid_referers` `none` | `blocked` | `server_names` | string ...;   |
|-------------------------------------------------------------------------------------------|----------------------------------------------------------------------|
| Padrão                                                                                    | —                                                                    |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | server, location                                                     |

Especifica os valores do campo de cabeçalho de solicitação `Referer` que farão com que a variável integrada [$invalid_referer](#v-invalid-referer) seja definida como uma string vazia. Caso contrário, a variável será definida como "1". A busca por correspondência não diferencia maiúsculas de minúsculas.

Os parâmetros podem ser os seguintes:

| `none`              | o campo `Referer` está ausente no cabeçalho da solicitação;                                                                                                                                      |
|---------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `blocked`           | o campo `Referer` está presente no cabeçalho da solicitação, mas seu valor foi deletado por um firewall ou servidor proxy; tais valores são strings que não começam com `http://` ou `https://`; |
| `server_names`      | o campo de cabeçalho de solicitação `Referer` contém um dos nomes de servidor;                                                                                                                   |
| `string arbitrária` | define um nome de servidor e um prefixo URI opcional. Um nome de servidor pode ter um "\*" no início ou no final. Durante a verificação, a porta do servidor no campo `Referer` é ignorada;      |
| `expressão regular` | o primeiro símbolo deve ser um "~". Deve-se notar que uma expressão será correspondida ao texto começando após `http://` ou `https://`.                                                          |

Exemplo:

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

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

## Variáveis Integradas

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

### `$invalid_referer`

String vazia, se o valor do campo de cabeçalho de solicitação `Referer` for considerado [válido](#valid-referers), caso contrário "1".
