Junior
Mi az a CSRF?
sobes.tech MI
Válasz az MI-től
CSRF (Cross-Site Request Forgery) — ez egy támadástípus, amelyben a támadó arra kényszeríti a felhasználót, hogy nem kívánt műveleteket hajtson végre egy olyan weboldalon, ahol már hitelesítve van.
A támadás lényege, hogy egy rosszindulatú oldal vagy levél tartalmaz egy kérést, amit a felhasználó böngészője automatikusan elküld a céloldalnak. Ha a felhasználó be van jelentkezve a céloldalon, a böngészője elküldi a cookie-kat, és a kérés a felhasználó jogkörében kerül végrehajtásra.
Például ez lehet egy jelszó módosítása, pénzátutalás vagy fiók törlése.
A CSRF elleni védekezéshez különböző módszerek léteznek:
- CSRF tokenek: titkos, minden kéréshez egyedi tokenek, amelyeket a szerver generál és minden űrlappal vagy AJAX kérésnél elküld. A szerver ellenőrzi a kapott token egyezését.
- SameSite cookie attribútum: szabályt állít be, amely szerint a cookie-k csak ugyanarról a domainről érkező kéréseknél kerülnek elküldésre.
- Origin és Referer fejléc ellenőrzése: a szerver ellenőrzi, honnan érkezett a kérés. Ezek a fejléc értékek azonban módosíthatók támadó által, vagy bizonyos esetekben hiányozhatnak.
- Kritikus műveletekhez újra-hitelesítés: kérje a jelszót, mielőtt fontos műveleteket hajtana végre.
A leghatékonyabb és legelterjedtebb módszer a CSRF tokenek használata.
// Példa CSRF token hozzáadására egy űrlaphoz
<form action="/transfer" method="POST">
<input type="hidden" name="_csrf_token" value="szerver által generált token">
<input type="number" name="amount">
<button type="submit">Átutalás</button>
</form>
// CSRF token ellenőrzése szerveren (Node.js és Express)
app.post('/transfer', csrfProtection, (req, res) => {
// A kérés feldolgozása a token sikeres ellenőrzése után
});