Təsir
Saytlararası Tələb Saxtakarlığı (CSRF) təcavüzkara qurbanın brauzerini aldadaraq qurbanın hazırda autentifikasiya olunduğu fərqli vebsaytda arzuolunmaz hərəkətlər etməyə imkan verir. Brauzerlər sorğulara kukilər kimi ətraf mühitin etimadnaməsini avtomatik daxil etdiyinə görə təcavüzkar istifadəçinin xəbəri olmadan parolların dəyişdirilməsi, məlumatların silinməsi və ya əməliyyatların başlanması kimi vəziyyəti dəyişdirən əməliyyatları saxtalaşdıra bilər.
Kök Səbəb
CSRF-nin əsas səbəbi, sorğunun mənşəyindən asılı olmayaraq, [S1]-dən asılı olmayaraq, həmin domenə sorğu edildiyi zaman domenlə əlaqəli kukiləri göndərmək kimi veb brauzerin defolt davranışıdır. Sorğunun qəsdən tətbiqin öz istifadəçi interfeysindən tetiklendiğinin xüsusi təsdiqi olmadan, server qanuni istifadəçi hərəkəti ilə saxta olanı ayıra bilməz.
Django CSRF Qoruma Mexanizmləri
Django, [S2] orta proqram və şablon inteqrasiyası vasitəsilə bu riskləri azaltmaq üçün daxili müdafiə sistemi təqdim edir.
Orta proqramın aktivləşdirilməsi
django.middleware.csrf.CsrfViewMiddleware CSRF mühafizəsi üçün cavabdehdir və adətən [S2] standart olaraq aktivləşdirilir. O, CSRF hücumlarının artıq [S2] idarə olunduğunu güman edən hər hansı görünüş ara proqramından əvvəl yerləşdirilməlidir.
Şablonun Tətbiqi
İstənilən daxili POST formaları üçün tərtibatçılar {% csrf_token %} teqini <form> [S2] elementinin içərisinə daxil etməlidirlər. Bu, sorğuya unikal, gizli nişanın daxil edilməsini təmin edir və server daha sonra istifadəçinin sessiyasına qarşı təsdiq edir.
Token Sızma Riskləri
Kritik icra detalı ondan ibarətdir ki, {% csrf_token %} heç vaxt [S2] xarici URL-ləri hədəfləyən formalara daxil edilməməlidir. Bunu etmək məxfi CSRF nişanını üçüncü tərəfə sızdıracaq və potensial olaraq istifadəçinin [S2] sessiyasının təhlükəsizliyini pozacaq.
Brauzer Səviyyəsi Müdafiəsi: SameSite kukiləri
Müasir brauzerlər SameSite atributunu Set-Cookie başlığı üçün təqdim etmişlər ki, [S1] dərin müdafiə qatını təmin etsinlər.
- Ciddi: Kuki yalnız birinci tərəf kontekstində göndərilir, yəni URL panelindəki sayt kukinin [S1] domeninə uyğundur.
- Lax: Kuki saytlararası alt sorğulara (şəkillər və ya çərçivələr kimi) göndərilmir, lakin istifadəçi [S1] standart linki izləməklə mənşə saytına daxil olduqda göndərilir.
FixVibe bunu necə sınaqdan keçirir
FixVibe indi qapalı aktiv yoxlama kimi CSRF mühafizəsini ehtiva edir. Domen yoxlanışından sonra active.csrf-protection aşkar edilmiş vəziyyəti dəyişən formaları yoxlayır, CSRF-token formalı girişləri və SameSite kuki siqnallarını yoxlayır, sonra aşağı təsirli saxta mənşəli təqdimata cəhd edir və yalnız server bunu qəbul etdikdə hesabat verir. Kuki yoxlamaları həmçinin CSRF müdafiəsini dərindən azaldan zəif SameSite atributlarını qeyd edir.
