Әсер
Сайтаралық сұрауды жалған жасау (CSRF) шабуылдаушыға жәбірленушінің браузерін алдап, құрбанның түпнұсқалығы расталған басқа веб-сайтта қажетсіз әрекеттерді орындауға мүмкіндік береді. Браузерлер сұраулардағы cookie файлдары сияқты қоршаған орта тіркелгі деректерін автоматты түрде қамтитындықтан, шабуылдаушы пайдаланушының білмеуінсіз құпия сөздерді өзгерту, деректерді жою немесе транзакцияларды бастау сияқты күйді өзгерту әрекеттерін қолдан жасай алады.
Негізгі себеп
CSRF-тің негізгі себебі - [S1] сұраудың шығу тегіне қарамастан, осы доменге сұрау жасалған сайын доменмен байланысты cookie файлдарын жіберудің веб-шолғыштың әдепкі әрекеті. Сұрау қолданбаның жеке пайдаланушы интерфейсінен әдейі іске қосылғанын нақты тексерусіз сервер заңды пайдаланушы әрекеті мен жалған әрекетті ажырата алмайды.
Django CSRF қорғау механизмдері
Django [S2] аралық бағдарламалық құрал мен үлгі интеграциясы арқылы осы тәуекелдерді азайту үшін кірістірілген қорғаныс жүйесін ұсынады.
Орташа бағдарламалық құралды белсендіру
django.middleware.csrf.CsrfViewMiddleware CSRF қорғауына жауапты және әдетте әдепкі бойынша [S2] қосылады. Ол CSRF шабуылдары [S2] өңделген деп есептейтін кез келген көрініс аралық бағдарламалық құралының алдында орналасуы керек.
Үлгіні енгізу
Кез келген ішкі POST пішіндері үшін әзірлеушілер {% csrf_token %} тегін <form> [S2] элементінің ішіне қосуы керек. Бұл сұрауға бірегей, құпия таңбалауыштың қосылуын қамтамасыз етеді, содан кейін сервер оны пайдаланушы сеансына қарсы тексереді.
Токеннің ағып кету қаупі
Іске асырудың маңызды мәліметтері {% csrf_token %} ешқашан [S2] сыртқы URL мекенжайларына бағытталған пішіндерге қосылмауы керек. Бұл құпия CSRF таңбалауышын үшінші тарапқа жіберіп, пайдаланушының [S2] сеансының қауіпсіздігін бұзуы мүмкін.
Браузер деңгейіндегі қорғаныс: SameSite cookie файлдары
Қазіргі браузерлер SameSite атрибутын Set-Cookie тақырыбына тереңдетілген қорғаныс деңгейін қамтамасыз ету үшін енгізді.
- Қатаң: Cookie файлы тек бірінші тарап контекстінде жіберіледі, яғни URL жолындағы сайт cookie файлының [S1] доменіне сәйкес келеді.
- Lax: Cookie файлы тораптар арасындағы ішкі сұрауларға (суреттер немесе кадрлар сияқты) жіберілмейді, бірақ пайдаланушы [S1] стандартты сілтемесін орындау сияқты бастапқы сайтқа шарлағанда жіберіледі.
FixVibe оны қалай тексереді
FixVibe енді жабық белсенді тексеру ретінде CSRF қорғауды қамтиды. Доменді растағаннан кейін active.csrf-protection табылған күйді өзгертетін пішіндерді тексереді, CSRF таңбалауыш түріндегі кірістерді және SameSite cookie сигналдарын тексереді, содан кейін әсері төмен жалған бастапқы жіберу әрекетін жасайды және сервер оны қабылдаған кезде ғана есеп береді. Cookie тексерулері сонымен қатар CSRF қорғанысын тереңдететін әлсіз SameSite атрибуттарын белгілейді.
