TL;DR? Ecco alcuni modi per proteggere i tuoi cache content da queste minacce usando la gestione dei bot di Fastly:
Usa le sfide dinamiche per mettere alla prova i clienti che potrebbero utilizzare un driver web
Blocco degli scraper tramite user-agent che non dovrebbero accedere al tuo sito utilizzando una regola di richiesta
Utilizzo del segnale VERIFIED-BOT per bloccare i bot che si spacciano per bot noti e verificabili
Combinando queste tecniche, puoi creare una difesa solida contro lo scraping non autorizzato e proteggere i tuoi contenuti preziosi.
La cache migliora significativamente le prestazioni del sito web, ma rende anche i tuoi contenuti più accessibili, aumentando il rischio di furto da parte degli scraper. Ciò può avere un impatto significativo sui tuoi ricavi e sulla SEO. Gli scraper non autorizzati possono rubare descrizioni di prodotti, prezzi, articoli e altri dati preziosi, ripubblicandoli altrove e potenzialmente:
Fare concorrenza sleale sui prezzi: i concorrenti possono raccogliere le tue informazioni sui prezzi e offrire prezzi più bassi, rubandoti i clienti.
Duplicare i tuoi contenuti: gli scraper possono copiare le descrizioni dei tuoi prodotti e i tuoi articoli unici, danneggiando il tuo posizionamento SEO e l'autorità del tuo marchio.
Creazione di prodotti contraffatti: le informazioni dettagliate sui prodotti raccolte dal tuo sito possono essere utilizzate per creare prodotti contraffatti, danneggiando la reputazione del tuo marchio.
Gestione dei bot e cache content
Al momento della pubblicazione di questo blog, l'implementazione immediata della gestione dei bot è progettata per proteggere i contenuti dopo la cache nel ciclo di vita VCL nei casi di miss o pass. Questo è stato fatto originariamente per concentrarsi sull'ispezione delle richieste che vanno all'origine per proteggere contro tradizionali attacchi OWASP Top 10. La piattaforma Fastly offre un livello di personalizzazione incredibile. Con una piccola quantità di VCL, è possibile ispezionare non solo le richieste che verrebbero indirizzate all'origine, ma anche quelle che generano un cache hit.
Integrazione VCL di Fastly per proteggere i cache content
Per proteggere i cache content, è necessario implementare una VCL per inviare richieste alla gestione dei bot quando si verifica un cache hit. Ecco alcuni dei punti chiave del VCL che verranno menzionati più avanti.
Ispezione della gestione dei bot su cache hit: l'obiettivo principale è ispezionare i contenuti memorizzati nella cache attraversa la gestione dei bot di Fastly. Ciò si ottiene utilizzando un backend
noop. Quando una richiesta arriva nella cache, invece di servire immediatamente il contenuto, il VCL reindirizza la richiesta al backendnoop, il che permette alla gestione dei bot di ispezionare la richiesta senza doverla inviare al di fuori del PoP di Fastly.Esclusione di file statici: per ottimizzare le prestazioni, i file statici (JS, CSS, font, immagini) vengono esclusi dall'ispezione di gestione dei bot quando rappresentano un cache hit. In questo modo si riduce la latenza per queste risorse comunemente memorizzate nella cache. Questa opzione può essere personalizzata in base al tipo di cache content che desideri proteggere.
Controllo delle azioni di gestione dei bot: il VCL verifica la presenza di tag specifici (BLOCKED o CHALLENGED) nelle intestazioni di risposta provenienti dalla gestione dei bot. Se questi tag sono presenti, allora viene applicata l'azione di gestione dei bot corrispondente (blocco o sfida). Se la gestione dei bot non richiede alcuna azione, la richiesta viene riavviata per fornire il contenuto direttamente dalla cache.
Per impedire che le richieste vengano inviate al di fuori del PoP di Fastly per questa ispezione, è necessario configurare un servizio Fastly separato che il Next-Gen WAF possa utilizzare come origine. Il servizio VCL può essere molto semplice e deve solo restituire un 200 OK affinché questa implementazione funzioni. Questo è ciò che in seguito verrà chiamato noop_origin. Il seguente VCL è uno init snippet che può essere inserito in questo servizio noop. È necessario assegnare a questo servizio VCL noop un dominio univoco durante la creazione del servizio. Puoi usare un nome univoco che è preceduto dal prefisso {some-name}.global.ssl.fastly.net
# vcl_init
sub vcl_recv {
error 600;
}
sub vcl_error {
if (obj.status == 600) {
set obj.status = 200;
set obj.response = "OK";
return (deliver);
}
}
Di seguito è riportato l' init snippet da applicare al servizio VCL principale. È necessario aggiornare YOURHOSTNAME con un valore univoco per il proprio servizio.
# vcl_init
# noop backend is used so that the NGWAF may quickly inspect requests that are cache HIT.
backend F_noop_origin {
.between_bytes_timeout = 10s;
.connect_timeout = 1s;
.first_byte_timeout = 1s;
.host = "{some-name}.global.ssl.fastly.net";
.host_header = "{some-name}.global.ssl.fastly.net";
.always_use_host_header = true;
.max_connections = 200;
.port = "443";
.ssl = true;
.max_tls_version = "1.3";
.min_tls_version = "1.1";
.ssl_cert_hostname = "{some-name}.global.ssl.fastly.net";
.ssl_check_cert = always;
.ssl_sni_hostname = "{some-name}.global.ssl.fastly.net";
.probe = {
.dummy = true;
.initial = 5;
.request = "HEAD / HTTP/1.1" "Host: {some-name}.global.ssl.fastly.net" "Connection: close";
.threshold = 1;
.timeout = 2s;
.window = 5;
}
}
# force cluster for all requests and on restarts. https://www.fastly.com/documentation/guides/vcl/clustering/#enabling-and-disabling-clustering
sub vcl_recv {
set req.http.Fastly-Force-Shield = "1";
# enable ngwaf logging headers
if (req.restarts == 0 && fastly.ff.visits_this_service == 0) {
set req.http.X-Sigsci-Response-Headers = "true";
}
}
# On cache hit, send the request to NGWAF
sub vcl_hit {
if (req.restarts < 1
&& !req.http.X-SigSci-No-Inspection) {
# Exclude static files from cache HIT NGWAF inspection
if (!(req.url.ext ~ "(?i)^(js|css|tff|woff|ico|png|jpg|jpeg)$")) {
set req.http.X-SigSci-Cached-Inspect = "HIT";
return(pass);
}
}
}
# When there is a cache HIT, set the noop backend origin.
sub vcl_pass {
if (req.http.X-SigSci-Cached-Inspect == "HIT") {
set req.backend = F_noop_origin;
}
}
# If BLOCKED or CHALLENGED is present, then return that response to the client
# If there is no action, then restart and serve content from cache
sub vcl_fetch {
if (req.http.X-SigSci-Cached-Inspect == "HIT"
&& req.restarts < 1
&& !(beresp.http.X-SigSci-Tags ~ "(BLOCKED|CHALLENGED)")) {
set req.http.x-restart-reason = "ngwaf-action=none";
restart;
}
}
Utilizzo della gestione dei bot di Fastly per proteggere la cache content
Proteggere i contenuti memorizzati nella cache è importante tanto quanto proteggere il traffico proveniente dall'origine, soprattutto quando si tratta di difendersi dallo scraping dei contenuti, dai bot imitatori e dalle minacce automatizzate. Con la gestione dei bot di Fastly (e un piccolo aggiornamento VCL), puoi ispezionare i cache hit, applicare sfide dinamiche e richiedere la convalida dei bot verificati, senza sacrificare le prestazioni. Proteggendo in modo proattivo le risorse memorizzate nella cache, non solo salvaguardi i tuoi ricavi e il tuo posizionamento SEO, ma mantieni anche il controllo sui contenuti digitali più preziosi del tuo marchio.
Pronto per una protezione migliore? Contatta il nostro team per scoprire come implementare queste tecniche e iniziare a proteggere i tuoi contenuti memorizzati nella cache!

