ຜົນກະທົບຂອງ SQL Injection
ການສີດ SQL (SQLi) ອະນຸຍາດໃຫ້ຜູ້ໂຈມຕີແຊກແຊງການສອບຖາມທີ່ແອັບພລິເຄຊັນເຮັດກັບຖານຂໍ້ມູນຂອງມັນ [S1]. ຜົນກະທົບຕົ້ນຕໍປະກອບມີການເຂົ້າເຖິງຂໍ້ມູນທີ່ລະອຽດອ່ອນໂດຍບໍ່ໄດ້ຮັບອະນຸຍາດເຊັ່ນ: ລະຫັດຜ່ານຂອງຜູ້ໃຊ້, ລາຍລະອຽດບັດເຄຣດິດ, ແລະຂໍ້ມູນສ່ວນຕົວ [S1].
ນອກເຫນືອຈາກການລັກຂໍ້ມູນ, ຜູ້ໂຈມຕີມັກຈະສາມາດດັດແປງຫຼືລຶບບັນທຶກຖານຂໍ້ມູນ, ນໍາໄປສູ່ການປ່ຽນແປງຢ່າງຕໍ່ເນື່ອງໃນພຶດຕິກໍາຂອງແອັບພລິເຄຊັນຫຼືການສູນເສຍຂໍ້ມູນ [S1]. ໃນກໍລະນີທີ່ມີຄວາມຮຸນແຮງສູງ, SQLi ສາມາດຖືກເລັ່ງເພື່ອປະນີປະນອມໂຄງສ້າງພື້ນຖານດ້ານຫຼັງ, ເປີດໃຊ້ການໂຈມຕີປະຕິເສດການບໍລິການ, ຫຼືສະຫນອງ backdoor ຢ່າງຕໍ່ເນື່ອງເຂົ້າໄປໃນລະບົບຂອງອົງການຈັດຕັ້ງ [S1][S2].
ສາເຫດ: ການຈັດການການປ້ອນຂໍ້ມູນທີ່ບໍ່ປອດໄພ
ສາເຫດຂອງການສີດ SQL ແມ່ນການວາງຕົວເປັນກາງທີ່ບໍ່ຖືກຕ້ອງຂອງອົງປະກອບພິເສດທີ່ໃຊ້ໃນຄໍາສັ່ງ SQL [S2]. ອັນນີ້ເກີດຂຶ້ນເມື່ອແອັບພລິເຄຊັນສ້າງການສອບຖາມ SQL ໂດຍການລວມເອົາການປ້ອນຂໍ້ມູນພາຍນອກທີ່ມີອິດທິພົນໂດຍກົງເຂົ້າໃນສະຕຣິງສອບຖາມ [S1][S2].
ເນື່ອງຈາກວ່າການປ້ອນຂໍ້ມູນບໍ່ໄດ້ຖືກແຍກອອກຈາກໂຄງສ້າງແບບສອບຖາມຢ່າງຖືກຕ້ອງ, ນາຍພາສາຖານຂໍ້ມູນອາດຈະປະຕິບັດບາງສ່ວນຂອງການປ້ອນຂໍ້ມູນຂອງຜູ້ໃຊ້ເປັນລະຫັດ SQL ແທນທີ່ຈະປະຕິບັດມັນເປັນຂໍ້ມູນຕົວຈິງ [S2]. ຊ່ອງໂຫວ່ນີ້ສາມາດສະແດງອອກໃນພາກສ່ວນຕ່າງໆຂອງການສອບຖາມ, ລວມທັງຖະແຫຼງການ SELECT, ຄ່າ INSERT, ຫຼືຖະແຫຼງການ UPDATE [S1].
ການສ້ອມແຊມ ແລະ ແກ້ໄຂຄອນກີດ
ໃຊ້ Parameterized Queries
ວິທີທີ່ມີປະສິດທິຜົນທີ່ສຸດໃນການປ້ອງກັນການສີດ SQL ແມ່ນການນໍາໃຊ້ການສອບຖາມ parameterized, ເຊິ່ງເອີ້ນກັນວ່າຄໍາຖະແຫຼງທີ່ກະກຽມ [S1]. ແທນທີ່ຈະ concatenating strings, ນັກພັດທະນາຄວນໃຊ້ກົນໄກທີ່ມີໂຄງສ້າງທີ່ບັງຄັບໃຊ້ການແຍກຂໍ້ມູນແລະລະຫັດ [S2].
ຫຼັກການສິດທິພິເສດໜ້ອຍທີ່ສຸດ
ແອັບພລິເຄຊັນຄວນເຊື່ອມຕໍ່ກັບຖານຂໍ້ມູນໂດຍໃຊ້ສິດທິພິເສດຕ່ໍາສຸດທີ່ຕ້ອງການສໍາລັບວຽກງານຂອງພວກເຂົາ [S2]. ບັນຊີແອັບພລິເຄຊັນເວັບບໍ່ຄວນມີສິດທິພິເສດໃນການບໍລິຫານ ແລະຄວນຈະຖືກຈຳກັດຢູ່ໃນຕາຕະລາງສະເພາະ ຫຼືການດຳເນີນການທີ່ຈຳເປັນສຳລັບການເຮັດວຽກຂອງມັນ [S2].
ການກວດສອບການປ້ອນຂໍ້ມູນແລະການເຂົ້າລະຫັດ
ໃນຂະນະທີ່ບໍ່ແມ່ນການທົດແທນສໍາລັບພາລາມິເຕີ, ການກວດສອບການປ້ອນຂໍ້ມູນສະຫນອງການປ້ອງກັນໃນຄວາມເລິກ [S2]. ແອັບພລິເຄຊັ່ນຄວນໃຊ້ກົນລະຍຸດທີ່ຍອມຮັບ-ຮູ້ຈັກດີ, ກວດສອບການປ້ອນຂໍ້ມູນເຂົ້າກັບປະເພດ, ຄວາມຍາວ ແລະຮູບແບບທີ່ຄາດໄວ້ [S2].
ວິທີການ FixVibe ທົດສອບສໍາລັບມັນ
FixVibe ກວມເອົາການສີດ SQL ແລ້ວຜ່ານໂມດູນເຄື່ອງສະແກນ active.sqli ທີ່ມີປະຕູຮົ້ວ. ການສະແກນທີ່ເຮັດວຽກພຽງແຕ່ດໍາເນີນການຫຼັງຈາກການຢັ້ງຢືນຄວາມເປັນເຈົ້າຂອງໂດເມນແລະຢັ້ງຢືນ. ການກວດສອບໄດ້ລວບລວມຂໍ້ມູນຕົ້ນກໍາເນີດດຽວກັນ GET endpoints ທີ່ມີຕົວກໍານົດການສອບຖາມ, ກໍານົດການຕອບສະຫນອງພື້ນຖານ, ຊອກຫາຄວາມຜິດປົກກະຕິ boolean ສະເພາະຂອງ SQL, ແລະພຽງແຕ່ລາຍງານການຄົ້ນພົບຫຼັງຈາກການຢືນຢັນໄລຍະເວລາໃນທົ່ວຄວາມຍາວຊັກຊ້າຫຼາຍ. ການສະແກນບ່ອນເກັບມ້ຽນຍັງຊ່ວຍຈັບສາເຫດກ່ອນຫນ້ານັ້ນໂດຍຜ່ານ code.web-app-risk-checklist-backfill, ເຊິ່ງຊີ້ໃຫ້ເຫັນການໂທ SQL ດິບທີ່ສ້າງຂຶ້ນດ້ວຍການແຊກແຊງແມ່ແບບ.
