Sobes.tech
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
});