Criar um incluo na lista de bloqueios referenciador
Os Edge Dictionaries criam pares de valores-chave acessíveis a funções de VCL durante o processamento de trechos de VCL. Neste exemplo, você cria um dicionário de borda que fornece a lista de sites referenciadores a serem bloqueados.
-
Faça logon no Administrador.
-
Clique em Lojas > Configurações > Configuração > Avançadas > Sistema.
-
Expanda Cache de Página Inteira > Configuração Rápida > dicionários Edge.
-
Crie o contêiner Dicionário:
-
Clique em Adicionar container.
-
Na página Contêiner, digite um Nome do dicionário—
referrer_blocklist
. -
Selecione Ativar após a alteração para implantar suas alterações na versão da configuração do serviço Fastly que você está editando.
-
Clique em Carregar para anexar o dicionário à configuração do serviço Fastly.
-
-
Adicione a lista de nomes de domínio a serem bloqueados ao dicionário
referrer_blocklist
:-
Clique no ícone Configurações do dicionário
referrer_blocklist
. -
Adicione e salve pares de valores chave no novo dicionário. Neste exemplo, cada Chave é o nome de domínio de uma URL de referenciador a ser bloqueada e o Valor é
true
. -
Clique em Cancelar para retornar à página de configuração do sistema.
-
-
Clique em Salvar configuração.
-
Atualize o cache de acordo com a notificação na parte superior da página.
Para obter mais informações sobre Dicionários Edge, consulte Criação e uso de Dicionários Edge e trechos de VCL personalizados na documentação do Fastly.
Criar um trecho de VCL personalizado para bloquear spam do referenciador
O seguinte código de trecho de VCL personalizado (formato JSON) mostra a lógica para verificar e bloquear solicitações. O trecho VCL captura o host de um site referenciador em um cabeçalho e compara o nome do host à lista de URLs no dicionário referrer_blocklist
. Se o nome do host corresponder, a solicitação será bloqueada com um erro 403 Forbidden
.
{
"name": "block_bad_referrer",
"dynamic": "0",
"type": "recv",
"priority": "5",
"content": "if (req.http.Referer ~ \"^(.*:)//([A-Za-z0-9\-\.]+)(:[0-9]+)?(.*)$\") {set req.http.Referer-Host = re.group.2;}if (table.lookup(referrer_blocklist, req.http.Referer-Host)) {error 403 \"Forbidden\";}"
}
Antes de criar um trecho com base neste exemplo, revise os valores para determinar se você precisa fazer alterações:
-
name
— Nome do trecho VCL. Neste exemplo, usamosblock_bad_referrer
. -
dynamic
— O valor 0 indica um trecho regular para carregar no VCL com versão para a configuração Fastly. -
priority
— Determina quando o trecho VCL é executado. A prioridade é5
para executar este código de trecho antes que qualquer trecho de VCL de Magento padrão (magentomodule_*
) receba uma prioridade de 50. Defina a prioridade para cada trecho personalizado acima ou abaixo de 50, dependendo de quando você deseja que seu trecho seja executado. Os trechos com números de prioridade mais baixa são executados primeiro. -
type
— Especifica um local para inserir o trecho na versão do VCL. Neste exemplo, o trecho VCL é um trechorecv
. Quando o trecho é inserido na versão do VCL, ele é adicionado à sub-rotinavcl_recv
, abaixo do código padrão do Fastly VCL e acima de qualquer objeto. -
content
— O trecho de código VCL a ser executado em uma linha, sem quebras de linha.
Depois de revisar e atualizar o código do seu ambiente, use um dos métodos a seguir para adicionar o trecho de VCL personalizado à configuração do serviço Fastly:
-
Adicionar o trecho de VCL personalizado do Administrador. Esse método é recomendado se você puder acessar o Administrador. (Exige o Fastly versão 1.2.58 ou posterior.)
-
Salve o exemplo de código JSON em um arquivo (por exemplo,
allowlist.json
) e carregue-o usando a API Fastly. Use esse método se não conseguir acessar o Administrador.