ຜົນກະທົບ
ຜູ້ໂຈມຕີທີ່ປະສົບຄວາມສຳເລັດໃນການນຳໃຊ້ຊ່ອງໂຫວ່ Cross-Site Scripting (XSS) ສາມາດຫຼອກຕົວເປັນຜູ້ໃຊ້ທີ່ຕົກເປັນເຫຍື່ອ, ດຳເນີນການໃດໆກໍຕາມທີ່ຜູ້ໃຊ້ໄດ້ຮັບອະນຸຍາດໃຫ້ປະຕິບັດ, ແລະເຂົ້າເຖິງຂໍ້ມູນໃດໆກໍຕາມຂອງຜູ້ໃຊ້ [S1]. ນີ້ຮວມເຖິງການລັກລອບຄຸກກີ້ຂອງເຊສຊັນ ເພື່ອລັກລອບບັນຊີ, ຈັບຂໍ້ມູນການເຂົ້າສູ່ລະບົບຜ່ານແບບຟອມປອມ, ຫຼືປະຕິບັດການແກ້ບັນຫາແບບສະເໝືອນ [S1][S2]. If the victim has administrative privileges, the attacker can gain full control over the application and its data [S1].
ສາເຫດ
XSS ເກີດຂຶ້ນເມື່ອແອັບພລິເຄຊັນໄດ້ຮັບການປ້ອນຂໍ້ມູນທີ່ຄວບຄຸມໂດຍຜູ້ໃຊ້ ແລະລວມເອົາມັນຢູ່ໃນຫນ້າເວັບໂດຍບໍ່ມີການວາງເປັນກາງ ຫຼືການເຂົ້າລະຫັດ [S2]. ອັນນີ້ເຮັດໃຫ້ການປ້ອນຂໍ້ມູນຖືກຕີຄວາມວ່າເປັນເນື້ອໃນທີ່ໃຊ້ວຽກ (JavaScript) ໂດຍຕົວທ່ອງເວັບຂອງຜູ້ຖືກເຄາະຮ້າຍ, ຫຼີກເວັ້ນນະໂຍບາຍຕົ້ນກໍາເນີດດຽວກັນທີ່ຖືກອອກແບບມາເພື່ອແຍກເວັບໄຊທ໌ອອກຈາກກັນ [S1][S2].
ປະເພດຊ່ອງໂຫວ່
- ສະທ້ອນ XSS: ສະຄຣິບທີ່ເປັນອັນຕະລາຍຖືກສະທ້ອນອອກຈາກແອັບພລິເຄຊັນເວັບໄປຫາຕົວທ່ອງເວັບຂອງຜູ້ເຄາະຮ້າຍ, ໂດຍປົກກະຕິຜ່ານພາລາມິເຕີ URL [S1].
- ເກັບໄວ້ XSS: ສະຄຣິບຖືກເກັບໄວ້ໃນເຊີບເວີຢ່າງຖາວອນ (ເຊັ່ນ: ໃນຖານຂໍ້ມູນ ຫຼືພາກສ່ວນຄຳເຫັນ) ແລະຮັບໃຊ້ໃຫ້ຜູ້ໃຊ້ພາຍຫຼັງ [S1][S2].
- XSS ທີ່ອີງໃສ່ DOM: ຊ່ອງໂຫວ່ມີຢູ່ທັງໝົດໃນລະຫັດຝ່າຍລູກຄ້າທີ່ປະມວນຜົນຂໍ້ມູນຈາກແຫຼ່ງທີ່ບໍ່ເຊື່ອຖືໃນວິທີທີ່ບໍ່ປອດໄພ ເຊັ່ນ: ຂຽນຫາ
innerHTML[S1].
ແກ້ໄຂຄອນກີດ
- Encode Data on Output: Convert user-controllable data into a safe form before rendering it. ໃຊ້ການເຂົ້າລະຫັດ HTML entity ສໍາລັບເນື້ອໃນ HTML, ແລະການເຂົ້າລະຫັດ JavaScript ຫຼື CSS ທີ່ເຫມາະສົມສໍາລັບສະພາບການສະເພາະເຫຼົ່ານັ້ນ [S1][S2].
- ການປ້ອນຂໍ້ມູນການກັ່ນຕອງເມື່ອມາຮອດ: ປະຕິບັດລາຍການອະນຸຍາດທີ່ເຂັ້ມງວດສໍາລັບຮູບແບບການປ້ອນຂໍ້ມູນທີ່ຄາດໄວ້ ແລະປະຕິເສດສິ່ງທີ່ບໍ່ສອດຄ່ອງກັບ [S1][S2].
- Use Security Headers: Set the
HttpOnlyflag on session cookies to prevent access via JavaScript [S2]. UseContent-TypeandX-Content-Type-Options: nosniffto ensure browsers do not misinterpret responses as executable code [S1]. - ນະໂຍບາຍຄວາມປອດໄພຂອງເນື້ອຫາ (CSP): ນຳໃຊ້ CSP ທີ່ເຂັ້ມແຂງເພື່ອຈຳກັດແຫຼ່ງທີ່ມາຂອງສະຄຣິບທີ່ສາມາດໂຫຼດ ແລະດຳເນີນການໄດ້, ສະໜອງຊັ້ນປ້ອງກັນໃນຄວາມເລິກ [S1]ZXCVFIXZVIBETOKEN0ZXCVZXCVVIBETOKEN.
ວິທີການ FixVibe ທົດສອບສໍາລັບມັນ
FixVibe ສາມາດກວດພົບ XSS ຜ່ານວິທີການຫຼາຍຊັ້ນໂດຍອີງໃສ່ວິທີການສະແກນທີ່ຕັ້ງ [S1]:
- Passive Scans: ການລະບຸຫົວຄວາມປອດໄພທີ່ຂາດຫາຍໄປ ຫຼືອ່ອນແອເຊັ່ນ
Content-Security-PolicyຫຼືX-Content-Type-Optionsທີ່ຖືກອອກແບບມາເພື່ອຫຼຸດຜ່ອນ XSS [S1]. - Active Probes: Injecting unique, non-malicious, non-malicious alphanumeric strings into URL parameters and form fields ເພື່ອກໍານົດວ່າພວກມັນຖືກສະທ້ອນຢູ່ໃນຮ່າງກາຍຕອບສະຫນອງໂດຍບໍ່ມີການເຂົ້າລະຫັດທີ່ເຫມາະສົມ [S1].
- Repo Scans: ການວິເຄາະ JavaScript ດ້ານລູກຄ້າສຳລັບ "sinks" ທີ່ຈັດການຂໍ້ມູນທີ່ບໍ່ໜ້າເຊື່ອຖືໄດ້ຢ່າງບໍ່ປອດໄພ, ເຊັ່ນ:
innerHTML,document.write, ຫຼືsetTimeout, ເຊິ່ງເປັນຕົວຊີ້ບອກທົ່ວໄປຂອງ DOMVIXBETOKEN0ZXCV. [S1].
