Povolené odkazy a zámek obsahu
Váš veřejný klíč je vidět v kódu webu, takže si ho kdokoli může zkopírovat a volat API přímo. U kontaktního formuláře to nevadí: e-mail jde vždycky vám. Jinak je to u šablon, které berou příjemce z parametrů (potvrzení odběru, automatická odpověď, potvrzení objednávky): kdo má veřejný klíč, mohl by vaši šablonu poslat z vaší domény a s vaším logem na libovolnou adresu a doplnit do ní vlastní text a odkazy. Přesně tak vypadá phishing.
Frontmail proto platí pravidlo: dynamický příjemce ⇒ uzamčený obsah. Příjemce zvolený v prohlížeči dál můžete použít, ale volající z vaší šablony phishingový e-mail neudělá.
Kdy je obsah uzamčený
Sekce “Kdy je obsah uzamčený”| Požadavek | Uzamčeno |
|---|---|
| veřejný klíč + šablona, jejíž Komu/Kopie/Skrytá kopie používá parametry (zapnutý Dynamický příjemce) | ano |
| automatická odpověď (jde vždy na adresu z formuláře) | ano – odkazy a pole odesílatele |
| privátní klíč (váš server) | ne, pokud šablona nemá Povolit jen odkazy na povolené domény |
| veřejný klíč + šablona s pevným příjemcem (kontaktní formulář) | ne – platí jen pravidlo pro odesílatele |
Šablona, která má Dynamického příjemce zapnutého, ale v Komu/Kopie/Skrytá kopie pevné adresy, uzamčená není.
Co musí uzamčený požadavek splnit
Sekce “Co musí uzamčený požadavek splnit”- CAPTCHA je povinná. Šablona musí mít zapnuté Vyžadovat CAPTCHA, jinak požadavek skončí
chybou
403 dynamic_recipient_requires_captcha. CAPTCHA používá vaše vlastní klíče Turnstile. Pokud CAPTCHA použít nemůžete, posílejte šablonu ze serveru privátním klíčem. - Pevný odesílatel. Adresa odesílatele, jméno odesílatele a Reply-To nesmí používat parametry –
403 dynamic_field_not_allowed. - Žádné HTML od volajícího, krátké texty. Parametry typu HTML nejde vyplnit a každá textová
hodnota má nejvýš 500 znaků (URL parametry 2 048; menší Max. délka parametru platí dál) –
422 invalid_template_paramssdetails.reason: "content_locked". - Odkazy jen na povolené domény – viz níže –
403 link_not_allowed. - Limit na příjemce. Nejvýš 5 e-mailů na adresu příjemce za den (UTC), nastavitelné v
Zabezpečení → E-mailů na příjemce za den (1–1 000). Nad limit:
429 rate_limitedsdetails.scope: "recipient". Automatické odpovědi sdílejí stejné počítadlo – nad limit se automatická odpověď nevytvoří.
Všechny kontroly proběhnou dřív, než se použije kredit. U automatické odpovědi neúspěšná
kontrola označí odpověď jako failed (s kódem chyby v historii), kredit
se vrátí a nic se neodešle.
Povolené domény odkazů
Sekce “Povolené domény odkazů”Odkaz je povolený, když jeho doména je:
- napsaná přímo v šabloně (HTML, textová verze nebo předmět) – nevzniká z parametru.
https://acme.cz/reset?token={{token}}povolíacme.cz;{{reset_url}}anihttps://{{sub}}.acme.cznepovolí nic; - v seznamu povolených domén webů (Zabezpečení → Povolené weby);
- v Zabezpečení → Povolené domény odkazů – jedna na řádek,
example.com(přesně tento host) nebo*.example.com(subdomény, ne samotná doména) – stejná pravidla jako u povolených webů; - vlastní doména Frontmailu (patička Odesláno přes Frontmail v tarifu Free).
mailto:, tel: a jakýkoli jiný odkaz mimo web (javascript:, data:, …) jsou povolené jen
tehdy, když je přesně stejný odkaz napsaný v šabloně.
Co se kontroluje
Sekce “Co se kontroluje”Po vykreslení Frontmail posbírá každou URL, kterou může poštovní klient otevřít nebo z ní udělat odkaz:
- atributy
href,src,srcset,action,formaction,background,postera další, i uvnitř podmíněných komentářů pro Outlook; - CSS
url()a@importv atributechstylea v<style>a<meta http-equiv="refresh">; - URL i holé domény v textu HTML, v textové verzi a v předmětu – poštovní klienti z
evil.com/loginnebowww.evil.comudělají odkaz sami, proto se počítají taky.
Před porovnáním se URL normalizují tak, jak by je četl prohlížeč: dekódují se HTML entity a CSS
escapy, odstraní neviditelné znaky, \ se bere jako /, doplní se protokol u //host, zahodí se
přihlašovací část (https://acme.cz@evil.com je evil.com), dekóduje se procentové kódování,
odstraní velká písmena a tečky na konci a mezinárodní domény se porovnávají v punycode – podvrh
аcme.cz s cyrilským а se s acme.cz neshoduje (chyba ho označí idn: true).
Chyba uvádí v details.hosts jen problémové domény – nikdy celé URL, které můžou obsahovat
tokeny.
Omezení
Sekce “Omezení”- Holé domény se poznávají podle seznamu koncovek, které doménami nejsou (
report.pdf,index.htmlaniNode.jsodkazy nejsou), takže text jakoMr.Smithse může počítat jako doménamr.smith. Koncovky oblíbené u phishingu, které jsou zároveň skutečnými doménami (.zip,.mov), se počítají vždy. - Běžné e-mailové adresy v textu (
jana@example.com) se za odkazy nepovažují. - Kontrola hlídá, kam odkazy vedou, ne text kolem nich. U veřejných formulářů držte texty krátké a limit na příjemce nízký.
Kontrola odkazů u dalších šablon
Sekce “Kontrola odkazů u dalších šablon”V nastavení šablony (Nastavení → Ochrana) zapněte Povolit jen odkazy na povolené domény a kontrola odkazů se použije na každý požadavek, i s privátním klíčem. U šablon z galerie s dynamickým příjemcem je zapnutá automaticky.
Adresa odesílatele
Sekce “Adresa odesílatele”U každého požadavku s veřejným klíčem nesmí adresa odesílatele v šabloně pocházet z parametrů
(jinak 403 dynamic_field_not_allowed).
Kontaktní formulář, který dává adresu návštěvníka do Reply-To, funguje dál – tam patří. Editor
šablon na všechno upozorní v Kontrolách.