bybence
Kapcsolat
← ByBence Academy

web biztonsag · 8 perc

CSRF támadás: hogyan működik, és hogyan védekezz ellene?

Mi a Cross-Site Request Forgery? Cookie-alapú munkamenetek, SameSite, CSRF token és Origin-ellenőrzés példákkal.

A CSRF (Cross-Site Request Forgery) során egy támadó olyan kérést próbál elindíttatni a felhasználó böngészőjével, amely egy másik webhelyen az áldozat meglévő jogosultságával hajtódhat végre. A probléma főleg ott jelentkezik, ahol a böngésző automatikusan elküldi a munkamenet-azonosító cookie-t.

Egyszerű példa: a felhasználó már be van jelentkezve

Valaki belép egy adminfelületre, majd egy másik, rosszindulatú weboldalt nyit meg. Ha az adminfelület nem ellenőrzi megfelelően a módosító kérések eredetét, a másik oldal megpróbálhat egy állapotváltoztató kérést kiváltani a böngészőből. Az, hogy ez sikerül-e, többek között a cookie-k beállításaitól és az alkalmazás védelmétől függ.

CSRF és XSS: két eltérő támadási osztály

Az XSS egy weboldal megbízható környezetében futtat nem kívánt szkriptet; a CSRF jellemzően a felhasználó automatikusan csatolt hitelesítési állapotát próbálja kihasználni. Az XSS a CSRF elleni egyes védekezéseket is megkerülheti, ezért a két veszély ellen együtt kell tervezni.

A legfontosabb védekezési rétegek

  • A módosító kérésekhez használj szerver által ellenőrzött CSRF tokent, ha a keretrendszer és hitelesítési modell ezt indokolja.
  • Állíts be megfelelő SameSite cookie-szabályt; ez fontos védelmi réteg, de önmagában nem minden esetben elég.
  • Ellenőrizd az Origin, szükség esetén a Referer fejlécet a megfelelő szerveroldali szabályok szerint.
  • Az állapotváltoztató műveleteket ne GET kérésen keresztül hajtsd végre.
  • Kritikus műveleteknél használj újbóli megerősítést vagy több tényezős ellenőrzést, ahol indokolt.

Miért nem véd meg önmagában a CORS?

A CORS fő feladata a böngészőben a különböző originről történő válaszhozzáférés szabályozása. Bizonyos cross-origin kérések válaszát blokkolhatja, de nem egyenértékű CSRF-védelemmel: a kérés elküldhetősége és a válasz JavaScriptből való olvashatósága külön kérdés.

Mire figyelj Next.js és Supabase alapú alkalmazásnál?

Elsőként tisztázd, hol tárolódik a hitelesítési állapot: cookie-ban vagy más módon. Szerveroldali API-végpontnál a jogosultság-ellenőrzés nem maradhat el attól, hogy a kliensnek van egy adminoldala. Ha cookie-alapú azonosítást használsz, a CSRF védelmi intézkedéseket a konkrét session-megoldáshoz illeszd.

Rövid ellenőrzőlista

  • Állapotváltoztató végpontok listázása.
  • Cookie- és SameSite-szabályok felülvizsgálata.
  • Origin/CSRF-token ellenőrzések tényleges szerveroldali tesztje.
  • Jogosultságvizsgálat minden érintett végponton.
  • Kritikus műveletek naplózása, hibakezelése és ismételhetőségi vizsgálata.

A részletes megoldásmintákhoz az OWASP CSRF Prevention Cheat Sheet dokumentációját használd.

OWASP: CSRF Prevention Cheat Sheet→

A biztonsági témájú fejlesztések az egyedi webes rendszereknél is fontosak.

Webfejlesztés Debrecen→
További Academy-leckék →