Junior
Mis on CSRF?
sobes.tech AI
Vastus AI-lt
CSRF (Cross-Site Request Forgery) — see on rünnakutüüp, kus pahatahtlik isik sunnib kasutajat sooritama soovimatuid toiminguid veebisaidil, kus kasutaja on juba autentitud.
Rünnaku olemus seisneb selles, et pahatahtlik veebisait või kiri sisaldab taotlust, mida kasutaja brauser automaatselt saadab sihtlehele. Kui kasutaja on sihtlehel sisse loginud, saadab tema brauser cookies ja taotlus täidetakse tema õigustes.
Näiteks võib see olla taotlus parooli muutmiseks, raha ülekandmiseks või konto kustutamiseks.
CSRF-st kaitsmiseks kasutatakse erinevaid meetodeid:
- CSRF-tokens: Saladused, iga taotluse jaoks unikaalsed tokenid, mis genereeritakse serveris ja saadetakse iga vormi või AJAX-taotlusega. Server kontrollib saadud tokeni vastavust.
- SameSite cookie atribuut: Seadistab reegli, mille kohaselt cookie saadetakse ainult siis, kui taotluse päritolu on sama domeen, kus cookie määrati.
- Origin ja Referer päised: Server kontrollib, kust taotlus pärineb. Kuid need päised võivad olla muudetud pahatahtliku isiku poolt või mõnel juhul puududa.
- Kriitiliste toimingute jaoks uuesti autentimise nõue: Taotlus parooli sisestamiseks enne oluliste toimingute sooritamist.
Kõige tõhusam ja laialdasemalt kasutatav meetod on CSRF-tokenside kasutamine.
// Näide CSRF-tokensi lisamisest vormile
<form action="/transfer" method="POST">
<input type="hidden" name="_csrf_token" value="serveri poolt genereeritud token">
<input type="number" name="amount">
<button type="submit">Ülekanne</button>
</form>
// Näide CSRF-tokensi kontrollimisest serveris (Node.js ja Express)
app.post('/transfer', csrfProtection, (req, res) => {
// Taotluse töötlemine pärast tokeni edukat kontrollimist
});