Нөлөөлөл
Сайт хоорондын хүсэлтийг хуурамчаар үйлдэх (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: Күүки нь сайт хоорондын дэд хүсэлт (зураг, жааз гэх мэт) дээр илгээгддэггүй боловч хэрэглэгч [S1] стандарт холбоосыг дагаж эх газрын сайт руу шилжих үед илгээгддэг.
FixVibe үүнийг хэрхэн туршиж үздэг
FixVibe нь одоо CSRF хамгаалалтыг хаалттай идэвхтэй шалгалт болгон багтаасан болно. Домэйн баталгаажуулсны дараа active.csrf-protection нь илрүүлсэн төлөвийг өөрчлөх маягтуудыг шалгаж, CSRF токен хэлбэрийн оролт болон SameSite күүки дохиог шалгаад, дараа нь бага нөлөөлөлтэй хуурамчаар илгээх оролдлого хийж, сервер үүнийг хүлээн авсан тохиолдолд л мэдээлдэг. Күүки шалгалтууд нь мөн CSRF хамгаалалтыг гүнзгийрүүлдэг сул SameSite шинж чанаруудыг тэмдэглэдэг.
