Povolené domény
Povolené domény (allowlist domén) zabezpečia, že váš verejný kľúč funguje len na vašich vlastných
weboch. Každá požiadavka s verejným kľúčom sa overí voči zoznamu podľa hlavičky Origin, ktorú
posiela prehliadač (prípadne podľa Referer, keď Origin chýba). Požiadavky z iných domén sa
odmietnu s chybou 403 origin_not_allowed a nespotrebujú
žiadne kredity.
Povolené domény sú dostupné vo všetkých tarifoch vrátane Free.
Nastavenie
Section titled “Nastavenie”Vlastník a administrátori pridávajú položky v Zabezpečenie → Povolené weby: napíšu doménu,
kliknú na Pridať (vždy jednu položku, najviac 100) a nastavenie uložia. Položky sa porovnávajú
s hostiteľom v origine požiadavky; na schéme (http/https) nezáleží.
| Položka | Zodpovedá |
|---|---|
example.com |
https://example.com a http://example.com na ľubovoľnom porte – ale nie www.example.com |
*.example.com |
ľubovoľná subdoména: www.example.com, shop.eu.example.com – ale nie samotné example.com |
localhost |
lokálny vývoj na ľubovoľnom porte |
localhost:3000 |
len tento port |
127.0.0.1 |
lokálny vývoj cez IP adresu |
my-app.pages.dev |
preview nasadenia u poskytovateľa hostingu |
Ak potrebujete hlavnú doménu aj subdomény, pridajte example.com aj *.example.com.
Mobilné aplikácie
Section titled “Mobilné aplikácie”Natívne aplikácie (React Native, Flutter, Swift, Kotlin) neposielajú Origin ani Referer, takže
ich verejné API v predvolenom stave odmietne (rovnako ako EmailJS, ktoré požiadavky mimo prehliadača
blokuje, kým ich nepovolíte). Ak chcete odosielať z aplikácie s verejným kľúčom, zapnite
Zabezpečenie → Mobilné aplikácie → Povoliť mobilné aplikácie (predvolene vypnuté) a kliknite na
Uložiť. Potom platí:
| Požiadavka | Mobilné aplikácie vypnuté, zoznam prázdny | Mobilné aplikácie vypnuté, zoznam vyplnený | Mobilné aplikácie zapnuté, zoznam prázdny | Mobilné aplikácie zapnuté, zoznam vyplnený |
|---|---|---|---|---|
Origin / Referer je v zozname |
prijatá | prijatá | prijatá | prijatá |
Origin / Referer nie je v zozname |
prijatá | 403 origin_not_allowed |
prijatá | 403 origin_not_allowed |
bez Origin aj Referer (natívna aplikácia, server, curl) |
403 origin_not_allowed |
403 origin_not_allowed |
prijatá | prijatá |
Origin: null |
prijatá | 403 origin_not_allowed |
prijatá | 403 origin_not_allowed |
Chyba pri požiadavke bez Origin má details.reason: "no_origin". Povolenie mobilných aplikácií
zároveň určuje, akým kľúčom sa pri takých požiadavkách overuje CAPTCHA: zdieľaným mobilným widgetom
Frontmailu len vtedy, keď je prepínač zapnutý (pozrite Turnstile).
Požiadavky s hlavičkou Origin alebo Referer sa podľa zoznamu kontrolujú vždy, takže zapnutie
prepínača ochranu vašich webov neoslabí. Origin: null (iframy so sandboxom, stránky file://) sa
za mobilnú aplikáciu nepovažuje. Turnstile je naďalej povinný pri každej
šablóne, ktorá ho má zapnutý. Zmena sa zapíše do auditného záznamu ako
security.updated.
Pred čím chráni a pred čím nie
Section titled “Pred čím chráni a pred čím nie”Hlavičku Origin nastavuje sám prehliadač a skripty ju nemôžu podvrhnúť, takže allowlist zabráni
iným webom vložiť váš kľúč. Skript bežiaci mimo prehliadača (curl, bot) však môže poslať
akúkoľvek hlavičku Origin. Preto sú povolené domény len jednou z vrstiev ochrany spolu
s Turnstile, rate limitmi a
ochranou pred botmi.
Požiadavky so súkromným kľúčom kontrolu domény preskakujú – prichádzajú zo serverov, ktoré žiadny
origin nemajú. Požiadavka so súkromným kľúčom, ktorá hlavičku Origin má, pochádza z webovej
stránky, kde si kľúč prečíta každý návštevník; odmietneme ju chybou
403 private_key_in_browser, pokiaľ nezapnete
Povoliť súkromné kľúče v prehliadačoch (pozrite Kľúče).
Riešenie problémov
Section titled “Riešenie problémov”- Lokálne to funguje, v produkcii nie: pridajte produkčnú doménu (aj variant s
www.). - Nefunguje to v natívnej aplikácii alebo zo serverového skriptu (
403 origin_not_allowed,details.reason: "no_origin"): pre aplikácie zapnite Povoliť mobilné aplikácie, na serveri použite súkromný kľúč. - Nefunguje to v mobilnom WebView alebo v rozšírení prehliadača: origin môže byť
null,file://alebochrome-extension://…. Odosielajte radšej zo svojho backendu so súkromným kľúčom. - Nefunguje to s rozšírením na ochranu súkromia, ktoré odstraňuje
Referer: moderné prehliadače pri požiadavkáchPOSTposielajúOriginvždy, takže k tomu dochádza zriedka; skontrolujte požiadavku v DevTools.