blockHeadless e lista dei bloccati
Oltre ai domini consentiti e a Turnstile, Frontmail ha due filtri leggeri che puoi attivare nell’SDK, nella dashboard o in entrambi. Le impostazioni della dashboard si trovano nella pagina Sicurezza (possono modificarle proprietari e admin).
blockHeadless
Sezione intitolata “blockHeadless”Rifiuta gli invii dai browser automatizzati headless (Puppeteer, Playwright, Selenium e simili), spesso usati dai bot che fanno spam nei moduli.
init({ publicKey: 'pk_4f2a…', blockHeadless: true });- Nell’SDK il controllo viene eseguito nel browser prima di qualsiasi richiesta:
send()viene rifiutato con unBlockedErrorcon codiceheadless_blocked. Nessuna richiesta, nessun credito. - In Sicurezza → Protezione dagli abusi → Blocca i browser headless anche l’API rifiuta le richieste con chiave pubblica il cui user agent identifica un browser headless o automatizzato (HeadlessChrome, Puppeteer, Playwright, Selenium, PhantomJS, jsdom …). Usali entrambi.
Gli utenti legittimi non ne risentono. I tuoi test end-to-end sì: nei test invia con una chiave privata oppure disattiva l’opzione negli ambienti di test.
Lista dei bloccati
Sezione intitolata “Lista dei bloccati”La lista dei bloccati rifiuta gli invii il cui destinatario – o il valore di un parametro scelto – corrisponde a una voce. Usi tipici: l’indirizzo di uno spammer insistente, domini di email usa e getta, un concorrente che fa scraping dei tuoi moduli.
init({ publicKey: 'pk_4f2a…', blockList: { list: ['spam@example.net', 'mailinator.com'], watchVariable: 'email', // parametro o campo del modulo da controllare },});- I valori vengono confrontati senza distinzione tra maiuscole e minuscole, dopo aver rimosso gli
spazi iniziali e finali. Una voce senza
@(o che inizia con@, come@mailinator.com) corrisponde a tutti gli indirizzi di quel dominio; le altre voci corrispondono esattamente a un indirizzo email o al valore controllato. - Nell’SDK il controllo viene eseguito prima della richiesta; una corrispondenza viene rifiutata
con
BlockedErrorcon codicerecipient_blocked. - In Sicurezza → Lista dei bloccati proprietari e admin inseriscono i Valori bloccati (uno
per riga, fino a 1.000) e, facoltativamente, un Parametro da controllare (ad es.
email; funzionano anche i percorsi con il punto). L’API applica la lista a ogni richiesta – con chiave pubblica o privata, inclusi client non aggiornati o script che non usano l’SDK – prima che venga consumato un credito. Controlla i destinatari renderizzati (A/CC/CCN) e il valore del parametro da controllare.
La lista dell’SDK è visibile nel sorgente della pagina; tieni le voci sensibili solo nella lista della dashboard.
limitRate (limitazione lato client)
Sezione intitolata “limitRate (limitazione lato client)”Gli SDK possono anche impedire a un singolo browser di inviare troppo spesso – per esempio a un visitatore che fa doppio clic sul pulsante di invio:
init({ publicKey: 'pk_4f2a…', limitRate: { id: 'contact', throttle: 10_000 } });Un secondo invio entro 10 secondi dalla stessa pagina (o con lo stesso id) viene rifiutato
localmente con BlockedError con codice rate_limited. È una comodità, non una misura di
sicurezza: per i limiti lato server vedi Rate limit.
Parametri rigorosi
Sezione intitolata “Parametri rigorosi”Sicurezza → Protezione dagli abusi → Parametri rigorosi rifiuta le richieste che contengono parametri non definiti dallo schema del modello (vedi Parametri). I bot che compilano tutti i campi di un modulo, anche quelli inventati, vengono fermati prima di consumare crediti.