Blocca spam di riferimento
Nell'esempio seguente viene illustrato come configurare il dizionario Fastly Edge con uno snippet VCL personalizzato per bloccare lo spam di riferimento dal sito Adobe Commerce sul sito dell'infrastruttura cloud.
Prerequisiti:
-
L’ambiente deve essere configurato per utilizzare la rete CDN Fastly. Vedere Configurare Fastly Services.
-
Assicurati di eseguire la versione più recente del modulo CDN Fastly per il Magento 2. Consulta Aggiornare il modulo Fastly.
-
Verifica la configurazione dell’ambiente per il servizio Fastly. Vedi Controlla Fastly caching.
-
Per accedere agli ambienti di staging e produzione è necessario disporre delle credenziali di amministratore.
-
Controlla i registri del sito per individuare falsi URL di riferimento e crea un elenco di domini da bloccare.
Creazione di un elenco Bloccati di referrer
I dizionari Edge creano coppie chiave-valore accessibili alle funzioni VCL durante l'elaborazione dello snippet VCL. In questo esempio, crei un dizionario perimetrale che fornisce l’elenco dei siti web di provenienza da bloccare.
-
Accedi all'amministratore.
-
Fai clic su Archivi > Impostazioni > Configurazione > Avanzate > Sistema.
-
Espandere Cache a pagina intera > Configurazione rapida > Dizionari Edge.
-
Crea il contenitore Dizionario:
-
Fai clic su Aggiungi contenitore.
-
Nella pagina Contenitore immettere un Nome dizionario—
referrer_blocklist
. -
Seleziona Attiva dopo la modifica per distribuire le modifiche alla versione della configurazione del servizio Fastly che stai modificando.
-
Fai clic su Carica per allegare il dizionario alla configurazione del servizio Fastly.
-
-
Aggiungere l'elenco dei nomi di dominio da bloccare al dizionario
referrer_blocklist
:-
Fare clic sull'icona Impostazioni per il dizionario
referrer_blocklist
. -
Aggiungi e salva coppie chiave-valore nel nuovo dizionario. Per questo esempio, ogni Chiave è il nome di dominio di un URL referente da bloccare e Valore è
true
. -
Fai clic su Annulla per tornare alla pagina di configurazione del sistema.
-
-
Fai clic su Salva configurazione.
-
Aggiorna la cache in base alla notifica nella parte superiore della pagina.
Per ulteriori informazioni sui dizionari di Edge, vedere Creazione e utilizzo di dizionari di Edge e snippet VCL personalizzati nella documentazione Fastly.
Creare un frammento VCL personalizzato per bloccare lo spam del referente
Il seguente codice snippet VCL personalizzato (formato JSON) mostra la logica per controllare e bloccare le richieste. Lo snippet VCL acquisisce l'host di un sito Web di provenienza in un'intestazione, quindi confronta il nome host con l'elenco di URL nel dizionario referrer_blocklist
. Se il nome host corrisponde, la richiesta viene bloccata con un errore 403 Forbidden
.
{
"name": "block_bad_referrer",
"dynamic": "0",
"type": "recv",
"priority": "5",
"content": "set req.http.Referer-Host = regsub(req.http.Referer, \"^https?:\/\/?([^:\/s]+).*$\", \"\\1\"); if (table.lookup(referrer_blocklist, req.http.Referer-Host)) { error 403 \"Forbidden\"; }"
}
Prima di creare uno snippet basato su questo esempio, esaminare i valori per determinare se è necessario apportare modifiche:
-
name
— Nome dello snippet VCL. In questo esempio è stato utilizzatoblock_bad_referrer
. -
dynamic
— Il valore 0 indica un frammento normale da caricare nella VCL con versione per la configurazione Fastly. -
priority
— Determina quando viene eseguito lo snippet VCL. La priorità è5
per eseguire questo codice snippet prima che a uno qualsiasi dei snippet VCL di Magento predefiniti (magentomodule_*
) sia assegnata una priorità di 50. Impostare la priorità per ogni frammento personalizzato su un valore maggiore o minore di 50 a seconda di quando si desidera eseguire il frammento. I frammenti con numeri di priorità inferiore vengono eseguiti per primi. -
type
— specifica un percorso in cui inserire lo snippet nella versione VCL. In questo esempio, lo snippet VCL è uno snippetrecv
. Quando il frammento viene inserito nella versione VCL, viene aggiunto alla subroutinevcl_recv
, sotto il codice VCL Fastly predefinito e sopra qualsiasi oggetto. -
content
— Frammento di codice VCL da eseguire in una riga, senza interruzioni di riga.
Dopo aver esaminato e aggiornato il codice per l’ambiente, utilizza uno dei metodi seguenti per aggiungere lo snippet VCL personalizzato alla configurazione del servizio Fastly:
-
Aggiungi lo snippet VCL personalizzato dall'amministratore. Questo metodo è consigliato se puoi accedere all’Admin. (Richiede Fastly versione 1.2.58 o successiva.)
-
Salva l'esempio di codice JSON in un file (ad esempio,
allowlist.json
) e caricalo utilizzando l'API Fastly. Utilizza questo metodo se non riesci ad accedere all’Admin.
Aggiungere lo snippet VCL personalizzato
-
Accedi all'amministratore.
-
Fai clic su Archivi > Impostazioni > Configurazione > Avanzate > Sistema.
-
Espandi Cache a pagina intera > Configurazione rapida > Snippet VCL personalizzati.
-
Fare clic su Crea snippet personalizzato.
-
Aggiungi i valori dello snippet VCL:
-
Nome -
block_bad_referrer
-
Tipo -
recv
-
Priorità -
5
-
VCL contenuto frammento —
code language-conf set req.http.Referer-Host = regsub(req.http.Referer, "^https?://?([^:/\s]+).*$", "1"); if (table.lookup(referrer_blocklist, req.http.Referer-Host)) { error 403 "Forbidden"; }
-
-
Fai clic su Crea.
-
Dopo il ricaricamento della pagina, fai clic su Carica VCL in Fastly nella sezione Fastly Configuration.
-
Al termine del caricamento, aggiorna la cache in base alla notifica nella parte superiore della pagina.
Convalida in breve la versione VCL aggiornata durante il processo di caricamento. Se la convalida non riesce, modifica il frammento VCL personalizzato per risolvere eventuali problemi. Quindi, carica nuovamente il file VCL.
$MAGENTO_CLOUD_APP_DIR/var/vcl_snippets_custom
nell'ambiente. I frammenti in questa directory vengono caricati automaticamente quando si fa clic su carica VCL in Fastly in Commerce Admin. Consulta Distribuzione automatizzata di snippet VCL personalizzati nel modulo Fastly CDN per la documentazione del Magento 2.Modificare lo snippet VCL personalizzato
-
Accedi all'amministratore.
-
Fai clic su Archivi > Impostazioni > Configurazione > Avanzate > Sistema.
-
Espandi Cache a pagina intera > Configurazione rapida > Snippet VCL personalizzati.
-
Nella colonna Azione fare clic sull'icona delle impostazioni accanto al frammento da modificare.
-
Dopo il ricaricamento della pagina, fai clic su Carica VCL in Fastly nella sezione Fastly Configuration.
-
Al termine del caricamento, aggiorna la cache in base alla notifica nella parte superiore della pagina.
Elimina lo snippet VCL personalizzato
-
Accedi all'amministratore.
-
Fai clic su Archivi > Impostazioni > Configurazione > Avanzate > Sistema.
-
Espandi Cache a pagina intera > Configurazione rapida > Snippet VCL personalizzati.
-
Nella colonna Azione, fai clic sull'icona del cestino accanto allo snippet da eliminare.
-
Nella finestra modale successiva, fai clic su DELETE e attiva una nuova versione.