Falšovanie požiadaviek medzi stránkami využíva skutočnosť, že prehliadač k požiadavke automaticky pripája autentifikačné údaje, najčastejšie cookies. Škodlivá stránka tak môže prinútiť prehliadač, aby odoslal požiadavku na iný web. Keď prijímajúca aplikácia nedokáže rozlíšiť túto požiadavku od tej, ktorú používateľ naozaj zamýšľal odoslať, môže dôjsť k zmene dát alebo spusteniu operácie pod identitou daného používateľa.
Podmienky, ktoré umožňujú CSRF
Útok vyžaduje autentifikovanú akciu, prihlasovacie údaje, ktoré prehliadač pripája automaticky, a požiadavku, ktorú môže vyvolať iný pôvodca (origin). Akcia navyše musí mať predvídateľný tvar. Útočník nemusí prečítať odpoveď na to, aby nežiaduca zmena úspešne prebehla.
Pri audite vibe-coded softvéru sa preto pozeráme ďalej než len na prihlasovaciu obrazovku. Autentifikácia môže správne určiť reláciu, zatiaľ čo aplikácii stále chýba dôkaz, že konkrétnu požiadavku inicioval samotný používateľ.
| Podmienka | Otázka auditu | Príslušná kontrola |
|---|---|---|
| Automatické údaje | Pripája prehliadač reláciu automaticky? | Návrh cookies a relácií |
| Zmena stavu | Môže požiadavka vytvoriť, aktualizovať, zmazať alebo spustiť prácu? | Preskúmanie metód a rout |
| Cezhraničný spúšťač | Môže požiadavku vyvolať iná stránka? | Kontrola pôvodu a pravidlá prehliadača |
| Predvídateľná požiadavka | Môže útočník zostaviť vyžadované polia? | Anti-CSRF token alebo reautentifikácia |
Tokeny, pôvody a pravidlá pre cookies
Anti-CSRF token viaže požiadavku meniacu stav na hodnotu, ktorú iná stránka nedokáže poskytnúť. Kontroly hlavičiek Origin alebo Referer môžu poskytnúť dodatočný dôkaz o tom, kde požiadavka vznikla. Nastavenia SameSite pre cookies obmedzujú, kedy prehliadače odosielajú cookies cez hranice webov. Tieto ochranné mechanizmy majú rôzne pokrytie, preto audit preveruje, ako spolupracujú v klientskom prostredí a v autentifikačnom modeli aplikácie.
Požiadavky, ktoré používajú autorizačnú hlavičku zámerne naplnenú kódom aplikácie, sú často vystavené inému riziku ako požiadavky autentifikované pomocou cookies. Tento rozdiel sa musí overiť v reálnom toku medzi klientom a serverom. Označenie ako „API“ samo o sebe nerozhoduje o tom, či sa CSRF uplatňuje.
Čo audit preveruje
Audítori zostavujú zoznam operácií meniacich stav naprieč celou útočnou plochou:
- Metódy a routy: Overte, že požiadavky určené na čítanie nemenia stav.
- Prenos relácie: Identifikujte cookies a iné prihlasovacie údaje pripájané prehliadačom.
- Dôkaz požiadavky: Vyhľadajte tokeny, validáciu pôvodu alebo zámernú reautentifikáciu.
- Alternatívne formáty: Skontrolujte formuláre, koncové body JSON, nahrávania súborov a prepisovanie metód.
- Citlivé akcie: Venujte zvýšenú pozornosť zmenám účtov, oprávnení, platieb, exportov a integrácií.
Overenie nasleduje reálneho klienta
Test musí reprodukovať spôsob, akým prehliadač odosiela produkčnú požiadavku, vrátane atribútov cookies, presmerovaní, typov obsahu a správania proxy. Unit test na strane servera, ktorý dodá platný token, síce dokazuje schválenú cestu, ale nedokazuje, že požiadavka z iného pôvodu (cross-origin) bude zamietnutá.
Falšovanie požiadaviek medzi stránkami je nezávislé od cross-site scripting. Jedno zneužíva autentifikovanú požiadavku, zatiaľ čo druhé spúšťa nedôveryhodný kód v dôveryhodnej stránke. Ochranné prvky a testovacie dôkazy zostávajú odlišné, aj keď sa obe týkajú hraníc prehliadača. Zachovanie týchto rozdielov je súčasťou disciplinovaného preskúmania popísaného v článku vibe coding versus agentic engineering.