FixVibe
Covered by FixVibemedium

Next.js ການຕັ້ງຄ່າສ່ວນຫົວຄວາມປອດໄພຜິດໃນ next.config.js

ແອັບພລິເຄຊັນ Next.js ທີ່ໃຊ້ next.config.js ສໍາລັບການຈັດການສ່ວນຫົວແມ່ນມີຄວາມອ່ອນໄຫວຕໍ່ກັບຊ່ອງຫວ່າງດ້ານຄວາມປອດໄພຖ້າຮູບແບບການຈັບຄູ່ເສັ້ນທາງບໍ່ຊັດເຈນ. ການຄົ້ນຄວ້ານີ້ຄົ້ນຄວ້າວິທີການກໍານົດຄ່າ wildcard ແລະ regex ທີ່ບໍ່ຖືກຕ້ອງເຮັດໃຫ້ສ່ວນຫົວຄວາມປອດໄພຂາດຫາຍໄປໃນເສັ້ນທາງທີ່ລະອຽດອ່ອນ ແລະວິທີການເຮັດໃຫ້ການຕັ້ງຄ່າແຂງຂຶ້ນ.

CWE-1021CWE-200

ຜົນກະທົບ

ສ່ວນຫົວຄວາມປອດໄພທີ່ຂາດຫາຍໄປສາມາດຖືກຂູດຮີດເພື່ອດໍາເນີນການ clickjacking, cross-site scripting (XSS), ຫຼືລວບລວມຂໍ້ມູນກ່ຽວກັບສະພາບແວດລ້ອມເຊີຟເວີ [S2]. ເມື່ອສ່ວນຫົວເຊັ່ນ Content-Security-Policy (CSP) ຫຼື X-Frame-Options ຖືກນຳໃຊ້ບໍ່ສອດຄ່ອງກັນໃນທົ່ວເສັ້ນທາງ, ຜູ້ໂຈມຕີສາມາດແນເປົ້າໝາຍໃສ່ເສັ້ນທາງທີ່ບໍ່ໄດ້ປ້ອງກັນສະເພາະເພື່ອຂ້າມການຄວບຄຸມຄວາມປອດໄພທົ່ວເວັບໄຊ [S2].

ສາເຫດ

Next.js ອະນຸຍາດໃຫ້ນັກພັດທະນາຕັ້ງຄ່າສ່ວນຫົວການຕອບສະໜອງໃນ next.config.js ໂດຍໃຊ້ຄຸນສົມບັດ headers [S2]. ການຕັ້ງຄ່ານີ້ໃຊ້ການຈັບຄູ່ເສັ້ນທາງທີ່ຮອງຮັບຕົວອັກສອນແທນ ແລະການສະແດງຜົນປົກກະຕິ [S2]. ໂດຍທົ່ວໄປແລ້ວ ຊ່ອງໂຫວ່ຄວາມປອດໄພແມ່ນມາຈາກ:

  • ການປົກຫຸ້ມຂອງເສັ້ນທາງບໍ່ຄົບຖ້ວນ: ຮູບແບບຂອງ Wildcard (ເຊັ່ນ: /path*) ອາດຈະບໍ່ກວມເອົາເສັ້ນທາງຍ່ອຍທີ່ຕັ້ງໃຈໄວ້ທັງໝົດ, ເຊິ່ງເຮັດໃຫ້ໜ້າທີ່ຖືກຊ້ອນກັນໂດຍບໍ່ມີສ່ວນຫົວຄວາມປອດໄພ [S2].
  • ການເປີດເຜີຍຂໍ້ມູນ: ໂດຍຄ່າເລີ່ມຕົ້ນ, Next.js ອາດຈະປະກອບມີສ່ວນຫົວ X-Powered-By, ເຊິ່ງເປີດເຜີຍສະບັບກອບເວັ້ນເສຍແຕ່ຈະປິດການໃຊ້ງານຢ່າງຊັດເຈນຜ່ານການຕັ້ງຄ່າ poweredByHeader ZXCVFIXZVIBETOKEN2.
  • CORS ການກຳນົດຄ່າຜິດ: ກຳນົດຄ່າ Access-Control-Allow-Origin ທີ່ບໍ່ເໝາະສົມພາຍໃນອາເຣ headers ສາມາດອະນຸຍາດໃຫ້ເຂົ້າເຖິງຂໍ້ມູນລະອຽດອ່ອນ [S2] ໂດຍບໍ່ໄດ້ຮັບອະນຸຍາດຂ້າມຕົ້ນກຳເນີດ.

ແກ້ໄຂຄອນກີດ

  • ຮູບແບບເສັ້ນທາງການກວດສອບ: ໃຫ້ແນ່ໃຈວ່າທຸກຮູບແບບ source ໃນ next.config.js ໃຊ້ແທນທີ່ເໝາະສົມ (ເຊັ່ນ: /:path*) ເພື່ອນຳໃຊ້ສ່ວນຫົວທົ່ວໂລກໃນບ່ອນທີ່ຈຳເປັນ [S2].
  • ປິດການໃຊ້ງານລາຍນິ້ວມື: ຕັ້ງ poweredByHeader: false ໃນ next.config.js ເພື່ອປ້ອງກັນບໍ່ໃຫ້ສ່ວນຫົວ X-Powered-By ຖືກສົ່ງ [S2].
  • ຈຳກັດ CORS: ກຳນົດ Access-Control-Allow-Origin ເປັນໂດເມນທີ່ເຊື່ອຖືໄດ້ສະເພາະ ແທນທີ່ຈະເປັນ wildcards ໃນການຕັ້ງຄ່າ headers [S2].

ວິທີການ FixVibe ທົດສອບສໍາລັບມັນ

FixVibe ສາມາດປະຕິບັດການສືບສວນທີ່ມີປະຕູຮົ້ວຢ່າງຫ້າວຫັນໂດຍການລວບລວມຄໍາຮ້ອງສະຫມັກແລະການປຽບທຽບຫົວຄວາມປອດໄພຂອງເສັ້ນທາງຕ່າງໆ. ໂດຍການວິເຄາະສ່ວນຫົວ X-Powered-By ແລະຄວາມສອດຄ່ອງຂອງ Content-Security-Policy ໃນທົ່ວຄວາມເລິກຂອງເສັ້ນທາງທີ່ແຕກຕ່າງກັນ, FixVibe ສາມາດກໍານົດຊ່ອງຫວ່າງການຕັ້ງຄ່າໃນ next.config.js.