Aplikace požadavek přijme, protože přihlašovací údaje jako cookies jej doprovázejí automaticky, bez přiměřeného potvrzení, že uživatel akci zamýšlel. Dopad je omezen privilegii uživatele a zranitelnou operací.
Obrany by měly rozlišovat záměrné akce stejné aplikace od požadavků iniciovaných či ovlivněných jinde. Ochrana poskytovaná frameworkem je preferovaná, když je pochopen její rozsah a konfigurace, a citlivé akce mohou potřebovat také explicitní reautentizaci či potvrzení.
Klíčové body
Integrita požadavkůPoužívejte nepředvídatelné anti-CSRF tokeny vázané na relaci uživatele a validujte je na straně serveru u požadavků měnících stav, nebo použijte jiný vzor podporovaný frameworkem s ekvivalentními vlastnostmi.
Signály prohlížečeKonfigurujte cookies SameSite přiměřeně a validujte hlavičky Origin, Fetch Metadata či očekávané vlastní hlavičky tam, kde je to vhodné; zacházejte s nimi jako s vrstvenými signály se zdokumentovanou kompatibilitou a chováním proxy.
Návrh workflowNedovolte nominálně read-only metodám požadavků měnit stav, vyžadujte aktuální autorizaci pro každou akci, omezujte privilegia a dobu trvání relací a přidejte step-up kontroly pro operace s vysokými důsledky.
Důležité omezeníCookies SameSite či přítomnost tokenu samy o sobě nezaručují ochranu. Tokeny mohou uniknout, být předvídatelné či nesprávně vázané a cross-site scripting (XSS) uvnitř důvěryhodné aplikace může mnoho obran CSRF zneškodnit.