Таасири
Сайттар аралык суроо-талаптарды жасалмалоо (CSRF) чабуулчуга жабырлануучунун браузерин алдап, учурда анын аныктыгы текшерилген башка веб-сайтта керексиз аракеттерди жасоого мүмкүндүк берет. Браузерлер суроо-талаптарга кукилер сыяктуу айлана-чөйрөнүн эсептик дайындарын автоматтык түрдө камтыгандыктан, чабуулчу колдонуучуга билгизбестен абалды өзгөртүү операцияларын (мисалы, сырсөздөрдү өзгөртүү, маалыматтарды жок кылуу же транзакцияларды баштоо) жасалмалоосу мүмкүн.
Негизги себеп
CSRFтин негизги себеби – бул доменге байланышкан кукилерди жөнөтүү боюнча веб-браузердин демейки жүрүм-туруму, ошол доменге суроо-талаптын келип чыгышына карабастан, [S1]. Колдонмонун өзүнүн колдонуучу интерфейсинен өтүнүч атайылап козголду деген атайын текшерүүсүз сервер колдонуучунун мыйзамдуу аракети менен жасалма аракетин айырмалай албайт.
Django CSRF коргоо механизмдери
Django [S2] орто программа жана шаблон интеграциясы аркылуу бул тобокелдиктерди азайтуу үчүн орнотулган коргонуу системасын камсыз кылат.
Орточо программаны активдештирүү
django.middleware.csrf.CsrfViewMiddleware CSRF коргоосуна жооп берет жана демейки боюнча [S2] иштетилет. Ал CSRF чабуулдары мурда эле [S2] иштетилген деп болжолдоочу ортомчу программалардын алдында жайгаштырылышы керек.
Шаблонду ишке ашыруу
Бардык ички POST формалары үчүн иштеп чыгуучулар {% csrf_token %} теги <form> [S2] элементинин ичине кириши керек. Бул суроо-талапка уникалдуу, жашыруун токен камтылганын камсыздайт, аны сервер колдонуучунун сессиясына каршы текшерет.
Токендин агып кетүү тобокелдиктери
Ишке ашыруунун маанилүү деталдары - {% csrf_token %} эч качан [S2] тышкы URL даректерин багытталган формаларга киргизилбеши керек. Мындай кылуу жашыруун CSRF энбелгисин үчүнчү тарапка чыгарып, колдонуучунун [S2] сеансынын коопсуздугун бузушу мүмкүн.
Браузер деңгээлиндеги коргонуу: SameSite Cookies
Заманбап браузерлер SameSite атрибутун Set-Cookie баш аты үчүн киргизип, [S1] терең коргонуу катмарын камсыз кылышты.
- Катаал: Куки биринчи тараптын контекстинде гана жөнөтүлөт, башкача айтканда URL тилкесиндеги сайт кукидин [S1] доменине дал келет.
- Lax: Cookie кайчылаш сайттардын кошумча суроо-талаптарында (мисалы, сүрөттөр же жээкчелер) жөнөтүлбөйт, бирок колдонуучу баштапкы сайтка барганда, мисалы, [S1] стандарттык шилтемеси аркылуу жөнөтүлөт.
FixVibe аны кантип сынайт
FixVibe азыр дарбазалуу активдүү текшерүү катары CSRF коргоону камтыйт. Домен ырасталгандан кийин, active.csrf-protection табылган абалды өзгөртүү формаларын текшерет, CSRF-токен түрүндөгү киргизүүлөрдү жана SameSite куки сигналдарын текшерет, андан кийин аз таасири бар жасалма келип чыгууну тапшырууга аракет кылат жана сервер аны кабыл алганда гана отчет берет. Cookie текшерүүлөрү ошондой эле CSRF коргоону тереңдетүүчү алсыз SameSite атрибуттарын белгилейт.
