Přeskočit na obsah

blockHeadless a block list

Kromě povolených domén a Turnstile nabízí Frontmail dva jednoduché filtry, které můžete zapnout v SDK, v dashboardu, nebo na obou místech. Nastavení v dashboardu najdete na stránce Zabezpečení (měnit je můžou vlastník a admini).

Odmítá odesílání z automatizovaných headless prohlížečů (Puppeteer, Playwright, Selenium a podobné), které často používají spamboti plnící formuláře.

init({ publicKey: 'pk_4f2a…', blockHeadless: true });
  • V SDK kontrola proběhne v prohlížeči ještě před odesláním požadavku: send() skončí chybou BlockedError s kódem headless_blocked. Žádný požadavek, žádný kredit.
  • V Zabezpečení → Ochrana proti zneužití → Blokovat headless prohlížeče API navíc odmítá požadavky s public key, jejichž user agent prozrazuje headless nebo automatizovaný prohlížeč (HeadlessChrome, Puppeteer, Playwright, Selenium, PhantomJS, jsdom …). Používejte obojí.

Běžných uživatelů se to nedotkne. Vašich vlastních end-to-end testů ano – v testech odesílejte s private key, nebo volbu v testovacích prostředích vypněte.

Block list odmítne odeslání, pokud příjemce – nebo hodnota zvoleného parametru – odpovídá některé položce. Typické použití: adresa neodbytného spammera, domény jednorázových e-mailů, konkurent, který scrapuje vaše formuláře.

init({
publicKey: 'pk_4f2a…',
blockList: {
list: ['spam@example.net', 'mailinator.com'],
watchVariable: 'email', // parametr nebo pole formuláře, které se kontroluje
},
});
  • Hodnoty se porovnávají bez ohledu na velikost písmen a po oříznutí mezer. Položka bez @ (nebo začínající @, např. @mailinator.com) odpovídá všem adresám na dané doméně; ostatní položky musí přesně odpovídat e-mailové adrese nebo kontrolované hodnotě.
  • V SDK kontrola proběhne před odesláním požadavku; při shodě skončí send() chybou BlockedError s kódem recipient_blocked.
  • V Zabezpečení → Seznam blokovaných hodnot zadávají vlastník a admini Blokované hodnoty (jednu na řádek, nejvýš 1 000) a volitelně Kontrolovaný parametr (např. email, fungují i cesty s tečkou). API seznam vynucuje u každého požadavku – s public i private key, včetně zastaralých klientů nebo skriptů bez SDK – dřív, než se spotřebuje kredit. Kontroluje příjemce po vyrenderování šablony (To/CC/BCC) i hodnotu kontrolovaného parametru.

Seznam v SDK je vidět ve zdrojovém kódu stránky; citlivé položky mějte jen v seznamu v dashboardu.

limitRate (omezení v prohlížeči)

Sekce “limitRate (omezení v prohlížeči)”

SDK umí také zabránit tomu, aby jeden prohlížeč odesílal příliš často – například když návštěvník dvakrát klikne na tlačítko odeslání:

init({ publicKey: 'pk_4f2a…', limitRate: { id: 'contact', throttle: 10_000 } });

Druhé odeslání do 10 sekund ze stejné stránky (nebo se stejným id) se odmítne lokálně chybou BlockedError s kódem rate_limited. Jde o pohodlnou pojistku, ne o bezpečnostní opatření – limity na straně serveru najdete v části Rate limity.

Zabezpečení → Ochrana proti zneužití → Striktní parametry odmítne požadavky s parametry, které schéma šablony nezná (viz Parametry). Boti, kteří vyplní každé pole formuláře včetně vymyšlených, se zastaví dřív, než spotřebují kredit.