เพื่อจัดการกับช่องโหว่ ASP ล้น เราควรทำการกรองอักขระที่ครอบคลุม
หนึ่งคือการเข้าสู่ระบบในฐานะสมาชิก
รหัสต่อไปนี้คือการกรองอักขระที่ผิดกฎหมายในชื่อผู้ใช้
-
ชื่อผู้ใช้=trim(request.form("ชื่อผู้ใช้"))
userpws=trim(request.form("รหัสผ่าน"))
ถ้าชื่อผู้ใช้="" หรือ userpws="" หรือ Instr(ชื่อผู้ใช้,"=")>0 หรือ Instr(ชื่อผู้ใช้"%")>0 หรือ Instr(ชื่อผู้ใช้,chr(32))>0 หรือ Instr(ชื่อผู้ใช้" ?")>0 หรือ Instr(ชื่อผู้ใช้"&")>0 หรือ Instr(ชื่อผู้ใช้";")>0 หรือ Instr(ชื่อผู้ใช้,",")>0 หรือ Instr(ชื่อผู้ใช้,"'")>0 หรือ Instr(ชื่อผู้ใช้,",")>0 หรือ Instr(ชื่อผู้ใช้,chr(34))>0 หรือ Instr(ชื่อผู้ใช้,chr(9))>0 หรือ Instr(ชื่อผู้ใช้,"?")>0 หรือ Instr(ชื่อผู้ใช้, "$")>0 แล้ว
response.write(''กรุณากรอกชื่อผู้ใช้และรหัสผ่านให้ถูกต้อง'')
การตอบสนองสิ้นสุด
สิ้นสุดถ้า
-
นอกจากนี้ยังมีช่องโหว่ล้นที่เกี่ยวข้องกับการป้อนอักขระที่ผิดกฎหมายผ่านแถบที่อยู่ ตัวอย่างเช่น หากหน้าหนึ่งคือ newslist.asp และอีกหน้าคือ newspage.asp
เราจะส่งพารามิเตอร์ newsid จาก newslist.asp ไปยัง newspage.asp
เมื่อได้รับพารามิเตอร์ใน newspage.asp โดยทั่วไปเราจะใช้เฉพาะ
-
ข่าวสลัว
newsid=request(''newsid'')
-
-
เพื่อความปลอดภัยอย่างน้อยเราควรเพิ่ม
-
ข่าวสลัว
newsid=tirm(request''id'')
ถ้า newsid='''' หรือ Instr(newsid,"'")>0 หรือ Instr(newsid,"%")>0 แล้ว
response.write(''พารามิเตอร์ที่ผิดกฎหมาย'')
การตอบสนองสิ้นสุด
-
ที่ผมกล่าวมานั้นเป็นสองประเด็นข้างต้น หากมีข้อบกพร่องประการใด โปรดแจ้งให้เราทราบด้วย
แม้ว่าเราจะยังมีช่องโหว่ในอินเทอร์เน็ต แต่การป้อนโค้ดเพิ่มอีกสองสามบรรทัดจะช่วยเพิ่มความปลอดภัยของเว็บไซต์ได้ดีขึ้น!
วิธีง่ายๆ ในการจัดการกับการใช้ช่องโหว่อักขระล้นที่ผิดกฎหมายเพื่อโจมตีเว็บไซต์