FixVibe
Covered by FixVibehigh

Муҳофизати CSRF: Муҳофизат аз тағироти беиҷозати давлатӣ

Тақаллубкорӣ дар байни сайтҳо (CSRF) як таҳдиди ҷиддӣ барои барномаҳои веб боқӣ мемонад. Ин тадқиқот меомӯзад, ки чӣ гуна чаҳорчӯбаҳои муосир ба монанди Django муҳофизатро амалӣ мекунанд ва чӣ гуна атрибутҳои сатҳи браузер ба монанди SameSite аз дархостҳои беиҷозат муҳофизати амиқро таъмин мекунанд.

CWE-352

Таъсир

Сохтакории дархости байнисоҳавӣ (CSRF) ба ҳамлагар имкон медиҳад, ки браузери ҷабрдидаро фиреб дода, амалҳои номатлубро дар вебсайти дигаре, ки дар он ҷо ҷабрдида айни замон тасдиқ карда шудааст, анҷом диҳад. Азбаски браузерҳо ба таври худкор эътимодномаҳои муҳити атрофро ба мисли кукиҳо дар дархостҳо дохил мекунанд, ҳамлакунанда метавонад бидуни огоҳии корбар амалҳои тағир додани ҳолатро ба мисли иваз кардани паролҳо, нест кардани маълумот ё оғоз кардани транзаксияҳоро сохтакорӣ кунад.

Сабаби аслӣ

Сабаби асосии CSRF ин рафтори пешфарзии веб-браузер оид ба фиристодани кукиҳои марбут ба домен аст, вақте ки дархост ба ин домен новобаста аз пайдоиши дархост [S1] дода мешавад. Бе тасдиқи мушаххасе, ки дархост қасдан аз интерфейси корбарии барнома оғоз шудааст, сервер байни амали қонунии корбар ва амали қалбакӣ фарқ карда наметавонад.

Механизмҳои муҳофизати Django CSRF

Django системаи мудофиавии дарунсохтро барои кам кардани ин хатарҳо тавассути ҳамгироии миёнаравӣ ва шаблон [S2] таъмин мекунад.

Фаъолсозии миёнаравӣ

django.middleware.csrf.CsrfViewMiddleware барои ҳифзи CSRF масъул аст ва маъмулан бо нобаёнӣ [S2] фаъол карда мешавад. Он бояд пеш аз ҳама нармафзори миёнаравӣ ҷойгир карда шавад, ки гумон мекунад, ки ҳамлаҳои CSRF аллакай коркард шудаанд [S2].

Амалисозии Шаблон

Барои ҳама гуна шаклҳои дохилии POST, таҳиягарон бояд теги {% csrf_token %}-ро дар дохили унсури <form> [S2] дохил кунанд. Ин кафолат медиҳад, ки аломати нодир ва махфӣ ба дархост дохил карда мешавад, ки сервер пас аз сессияи корбар онро тасдиқ мекунад.

Хатари ихроҷи аломатҳо

Тафсилоти муҳими татбиқ ин аст, ки {% csrf_token %} ҳеҷ гоҳ набояд ба шаклҳое дохил карда шавад, ки URL-ҳои берунии [S2]-ро ҳадаф қарор медиҳанд. Агар ин кор нишонаи махфии CSRF-ро ба тарафи сеюм интиқол диҳад ва эҳтимолан ба амнияти сессияи корбар [S2] осеб расонад.

Муҳофизати сатҳи браузер: кукиҳои SameSite

Браузерҳои муосир атрибути SameSite-ро барои сарлавҳаи Set-Cookie муаррифӣ карданд, то қабати мудофиаи амиқи [S1]-ро таъмин кунад.

  • Қатъӣ: Куки танҳо дар контексти тарафи аввал фиристода мешавад, яъне сайти сатри URL ба домени куки [S1] мувофиқат мекунад.
  • Lax: Куки дар зердархостҳои байнисоҳавӣ (ба монанди тасвирҳо ё чаҳорчӯба) фиристода намешавад, аммо ҳангоми паймоиши корбар ба сайти ибтидоӣ, масалан тавассути пайравӣ аз истиноди стандартии [S1] фиристода мешавад.

Чӣ тавр FixVibe онро озмоиш мекунад

FixVibe ҳоло муҳофизати CSRF-ро ҳамчун чеки фаъоли дарвозавӣ дар бар мегирад. Пас аз тасдиқи домен, active.csrf-protection шаклҳои ошкоршудаи ҳолати тағирёбандаро тафтиш мекунад, вурудҳои CSRF-токеншакл ва сигналҳои кукиҳои SameSite-ро месанҷад, сипас кӯшиши пешниҳоди қалбакии камтаъсир мекунад ва танҳо ҳангоми қабули сервер гузориш медиҳад. Санҷишҳои кукиҳо инчунин атрибутҳои заиф SameSite-ро қайд мекунанд, ки дифои CSRF-ро дар амиқ коҳиш медиҳанд.