ຜົນກະທົບ
Cross-Site Request Forgery (CSRF) ອະນຸຍາດໃຫ້ຜູ້ໂຈມຕີສາມາດຫຼອກລວງຕົວທ່ອງເວັບຂອງຜູ້ຖືກເຄາະຮ້າຍໃຫ້ປະຕິບັດການກະທໍາທີ່ບໍ່ຕ້ອງການຢູ່ໃນເວັບໄຊທ໌ທີ່ແຕກຕ່າງກັນທີ່ຜູ້ຖືກເຄາະຮ້າຍໄດ້ຮັບການຢືນຢັນໃນປັດຈຸບັນ. ເນື່ອງຈາກຕົວທ່ອງເວັບຈະລວມເອົາຂໍ້ມູນປະຈໍາຕົວຂອງສະພາບແວດລ້ອມໄວ້ໂດຍອັດຕະໂນມັດເຊັ່ນ cookies ໃນການຮ້ອງຂໍ, ຜູ້ໂຈມຕີສາມາດປອມແປງການປະຕິບັດການປ່ຽນສະຖານະ - ເຊັ່ນ: ການປ່ຽນລະຫັດຜ່ານ, ການລຶບຂໍ້ມູນ, ຫຼືການເລີ່ມຕົ້ນການເຮັດທຸລະກໍາ - ໂດຍທີ່ຜູ້ໃຊ້ບໍ່ຮູ້.
ສາເຫດ
ສາເຫດພື້ນຖານຂອງ CSRF ແມ່ນພຶດຕິກໍາເລີ່ມຕົ້ນຂອງຕົວທ່ອງເວັບຂອງຕົວທ່ອງເວັບທີ່ຈະສົ່ງ cookies ທີ່ກ່ຽວຂ້ອງກັບໂດເມນທຸກຄັ້ງທີ່ມີການຮ້ອງຂໍໃຫ້ກັບໂດເມນນັ້ນ, ໂດຍບໍ່ຄໍານຶງເຖິງຕົ້ນກໍາເນີດຂອງຄໍາຮ້ອງຂໍ [S1]. ໂດຍບໍ່ມີການກວດສອບສະເພາະວ່າຄໍາຮ້ອງຂໍຖືກກະຕຸ້ນໂດຍເຈດຕະນາຈາກສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ຂອງແອັບພລິເຄຊັນເອງ, ເຊີບເວີບໍ່ສາມາດຈໍາແນກໄດ້ລະຫວ່າງການກະທໍາທີ່ຖືກຕ້ອງຂອງຜູ້ໃຊ້ແລະການປອມແປງ.
ກົນໄກການປົກປ້ອງ Django CSRF
Django ສະໜອງລະບົບປ້ອງກັນຕົວໃນຕົວເພື່ອຫຼຸດຜ່ອນຄວາມສ່ຽງເຫຼົ່ານີ້ຜ່ານຕົວກາງ ແລະແບບປະສົມປະສານ [S2].
ການເປີດໃຊ້ງານ Middleware
django.middleware.csrf.CsrfViewMiddleware ມີຄວາມຮັບຜິດຊອບຕໍ່ການປົກປ້ອງ CSRF ແລະໂດຍທົ່ວໄປແລ້ວຈະຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ [S2]. ມັນຕ້ອງຖືກຈັດວາງໄວ້ກ່ອນທຸກມຸມເບິ່ງຕົວກາງທີ່ສົມມຸດວ່າການໂຈມຕີ CSRF ໄດ້ຖືກຈັດການແລ້ວ [S2].
ການຈັດຕັ້ງປະຕິບັດແມ່ແບບ
ສໍາລັບແບບຟອມ POST ພາຍໃນໃດນຶ່ງ, ນັກພັດທະນາຈະຕ້ອງໃສ່ແທັກ {% csrf_token %} ພາຍໃນອົງປະກອບ <form> [S2]. ນີ້ຮັບປະກັນວ່າ token ທີ່ເປັນເອກະລັກສະເພາະແມ່ນລວມຢູ່ໃນຄໍາຮ້ອງຂໍ, ເຊິ່ງເຊີບເວີຈະກວດສອບກັບເຊດຊັນຂອງຜູ້ໃຊ້.
ຄວາມສ່ຽງຕໍ່ການຮົ່ວໄຫຼຂອງໂທເຄັນ
ລາຍລະອຽດການປະຕິບັດທີ່ສໍາຄັນແມ່ນວ່າ {% csrf_token %} ບໍ່ຄວນຖືກລວມຢູ່ໃນແບບຟອມທີ່ກໍາຫນົດເປົ້າຫມາຍ URL ພາຍນອກ [S2]. ການເຮັດດັ່ງນັ້ນຈະຮົ່ວໄຫລຂອງໂທເຄັນ CSRF ລັບໄປຫາບຸກຄົນທີສາມ, ອາດຈະທໍາລາຍຄວາມປອດໄພຂອງເຊດຊັນຂອງຜູ້ໃຊ້ [S2].
Browser-Level Defense: SameSite Cookies
ຕົວທ່ອງເວັບທີ່ທັນສະໄຫມໄດ້ນໍາສະເຫນີຄຸນລັກສະນະ SameSite ສໍາລັບຫົວຂໍ້ Set-Cookie ເພື່ອສະຫນອງຊັ້ນຂອງການປ້ອງກັນໃນຄວາມເລິກ [S1].
- ເຂັ້ມງວດ: ຄຸກກີຖືກສົ່ງພຽງແຕ່ໃນບໍລິບົດຂອງບຸກຄົນທໍາອິດ, ຊຶ່ງຫມາຍຄວາມວ່າເວັບໄຊທ໌ໃນແຖບ URL ກົງກັບໂດເມນຂອງຄຸກກີ [S1].
- Lax: ຄຸກກີບໍ່ໄດ້ຖືກສົ່ງໄປຕາມຄໍາຮ້ອງຂໍຍ່ອຍຂ້າມເວັບໄຊ (ເຊັ່ນ: ຮູບພາບ ຫຼືກອບ) ແຕ່ຖືກສົ່ງເມື່ອຜູ້ໃຊ້ໄປຫາເວັບໄຊທ໌ຕົ້ນທາງ, ເຊັ່ນ: ໂດຍປະຕິບັດຕາມການເຊື່ອມຕໍ່ມາດຕະຖານ [S1].
ວິທີການ FixVibe ທົດສອບສໍາລັບມັນ
FixVibe ຕອນນີ້ປະກອບມີການປົກປ້ອງ CSRF ເປັນການກວດສອບທີ່ມີປະຕູຮົ້ວ. ຫຼັງຈາກການກວດສອບໂດເມນ, active.csrf-protection ກວດສອບການຄົ້ນພົບຮູບແບບການປ່ຽນແປງຂອງລັດ, ກວດສອບການປ້ອນຂໍ້ມູນທີ່ມີຮູບຊົງ CSRF ແລະສັນຍານຄຸກກີ SameSite, ຈາກນັ້ນພະຍາຍາມສົ່ງຂໍ້ມູນຕົ້ນກຳເນີດປອມ ແລະລາຍງານພຽງແຕ່ເມື່ອເຊີບເວີຍອມຮັບມັນ. ການກວດສອບຄຸກກີຍັງລາຍງານຄຸນລັກສະນະ SameSite ທີ່ອ່ອນແອທີ່ຫຼຸດຜ່ອນການປ້ອງກັນ CSRF ໃນຄວາມເລິກ.
