T
Tural ƏhmədovMüəllif
tural.ahmadov@example.comVeb Təhlükəsizliyi: OWASP Top 10 və XSS/CSRF Hücumlarından Müdafiə
httpOnly cookielər, SameSite qoruması, Content Security Policy və giriş məlumatlarının sanitarizasiyası strategiyaları.
Tətbiqinizin dizaynı nə qədər mükəmməl, kodu nə qədər sürətli olursa olsun, əgər təhlükəsizlik boşluğu varsa, bütün zəhmət bir anda puç ola bilər. Təəssüf ki, bir çox tərtibatçı təhlükəsizliyi ən sona saxlayır.
Bloq platformamızda tətbiq etdiyimiz müasir təhlükəsizlik mexanizmlərini nəzərdən keçirək:
📌 1. Cross-Site Scripting (XSS) və Token Oğurluğu
XSS hücumu zamanı haker saytınıza zərərli JavaScript skripti yeridir (məsələn, şərhlər və ya profil adı vasitəsilə).
Ən böyük təhlükə: Əgər siz JWT tokeninizi 'localStorage'-də saxlayırsınızsa, zərərli skript 'localStorage.getItem("token")' yazaraq bütün sessiyanı oğurlayıb öz serverinə göndərə bilər!
Müdafiə: Sessiya tokeni mütləq 'httpOnly: true' cookielərdə saxlanmalıdır. Bu halda brauzerdəki heç bir JS skripti bu cookie-ni oxuya bilməz.
📌 2. Cross-Site Request Forgery (CSRF)
CSRF zamanı istifadəçi başqa bir aldadıcı saytda olarkən həmin sayt gizlicə sizin saytınıza sorğu göndərir (məsələn, 'bank.com/transfer?amount=1000').
Müdafiə: Cookielərdə 'sameSite: "lax"' və ya '"strict"' təyin edildikdə, başqa domenlərdən gələn sorğularda həmin cookie brauzer tərəfindən ümumiyyətlə göndərilmir. Next.js Server Actions isə avtomatik olaraq 'Origin' və 'Host' başlıqlarını yoxlayaraq CSRF-i kökündən əngəlləyir.
📌 3. Timing Attacks və İstifadəçi Enumerasiyası
Login formasında "İstifadəçi tapılmadı" və ya "Şifrə yanlışdır" deyə fərqli mesajlar vermək hakerə hansı e-poçtların bazada mövcud olduğunu anlamağa imkan verir.
Bizim 'actions/auth.ts' faylında 'DUMMY_PASSWORD_HASH' mexanizmi tətbiq olunub: istifadəçi bazada olmasa belə eyni vaxt aparan bcrypt müqayisəsi icra edilir və generik "E-poçt və ya şifrə yanlışdır" mesajı qaytarılır.
←Bütün yazılara qayıtKateqoriya: Best Practices