Junior
CSRF nima?
sobes.tech AI
AIdan javob
CSRF (Cross-Site Request Forgery) — bu, hujum turi bo'lib, unda hujumchi foydalanuvchini avvaldan autentifikatsiya qilingan veb-saytda istalmagan harakatlarni amalga oshirishga majbur qiladi.
Hujumning mohiyati shundaki, zararli sayt yoki xat yozuvi foydalanuvchining brauzeri avtomatik ravishda maqsadli saytga yuboradigan so'rovni o'z ichiga oladi. Agar foydalanuvchi maqsadli saytga kirgan bo'lsa, uning brauzeri cookie yuboradi va so'rov uning huquqlari bilan bajariladi.
Masalan, bu parolni o'zgartirish, pul o'tkazish yoki hisobni o'chirish so'rovi bo'lishi mumkin.
CSRFdan himoyalanish uchun turli usullar qo'llaniladi:
- CSRF tokenlari: har bir so'rov uchun maxfiy va noyob tokenlar, ular serverda yaratiladi va har bir forma yoki AJAX so'rovi bilan yuboriladi. Server qabul qilingan tokenning mosligini tekshiradi.
- SameSite cookie atributi: cookie faqatgina o'sha domendan kelgan so'rovlar uchun yuboriladi.
- Origin va Referer sarlavhalarini tekshirish: server so'rovning qayerdan kelganini tekshiradi. Biroq, bu sarlavhalar hujumchi tomonidan o'zgartirilishi yoki ba'zi hollarda mavjud bo'lmasligi mumkin.
- Kritik harakatlar uchun qayta autentifikatsiya talab qilish: muhim operatsiyalarni bajarishdan oldin parol so'rash.
Eng samarali va keng tarqalgan usul — CSRF tokenlaridan foydalanish.
// Forma ichida CSRF tokenini qo'shish misoli
<form action="/transfer" method="POST">
<input type="hidden" name="_csrf_token" value="server tomonidan yaratilgan token">
<input type="number" name="amount">
<button type="submit">O'tkazish</button>
</form>
// Serverda CSRF tokenini tekshirish misoli (Node.js va Express bilan)
app.post('/transfer', csrfProtection, (req, res) => {
// Tokenni muvaffaqiyatli tekshirishdan so'ng so'rovni qayta ishlash
});