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.

Exemplo de Configuração#

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

if ($invalid_referer) {
    return 403;
}

Diretivas#

referer_hash_bucket_size#

Sintaxe

referer_hash_bucket_size size;

Padrão

referer_hash_bucket_size 64;

Contexto

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 separado.

referer_hash_max_size#

Sintaxe

referer_hash_max_size size;

Padrão

referer_hash_max_size 2048;

Contexto

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 separado.

valid_referers#

Sintaxe

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

Padrão

Contexto

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 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 com o texto começando após http:// ou https://.

Exemplo:

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

Variáveis Integradas#

$invalid_referer#

String vazia, se o valor do campo de cabeçalho de solicitação Referer for considerado válido, caso contrário "1".