เมื่อเร็วๆ นี้ เนื่องจากมีการแก้ไขโปรแกรม ASP (ซึ่งมีช่องโหว่ในการแทรก SQL) ฉันพบวิธีการป้องกันที่เกี่ยวข้องมากมายบนอินเทอร์เน็ต แต่ไม่มีวิธีใดที่น่าพอใจ ดังนั้นฉันจึงปรับปรุงวิธีการบางอย่างบนอินเทอร์เน็ตอย่างครอบคลุมและเขียนสิ่งนี้ ฟังก์ชัน ASP สำหรับการอ้างอิงของคุณ
นี่คือคำพูด:
ฟังก์ชั่น SafeRequest (ParaName)
Dim ParaValue
ParaValue=คำขอ(ParaName)
ถ้า IsNumeric(ParaValue) = True แล้ว
SafeRequest=ParaValue
ออกจากฟังก์ชัน
elseIf Instr(LCase(ParaValue),"select ") > 0 หรือ Instr(LCase(ParaValue),"insert ") > 0 หรือ Instr(LCase(ParaValue),"ลบจาก") > 0 หรือ Instr(LCase(ParaValue) ,"count(") > 0 หรือ Instr(LCase(ParaValue),"drop table") > 0 หรือ Instr(LCase(ParaValue),"update ") > 0 หรือ Instr(LCase(ParaValue),"truncate ") > 0 หรือ Instr(LCase(ParaValue),"asc(") > 0 หรือ Instr(LCase(ParaValue),"mid(") > 0 หรือ Instr(LCase(ParaValue),"char(") > 0 หรือ Instr(LCase (ParaValue),"xp_cmdshell") > 0 หรือ Instr(LCase(ParaValue),"exec master") > 0 หรือ Instr(LCase(ParaValue),"ผู้ดูแลระบบ net localgroup") > 0 หรือ Instr(LCase(ParaValue)," และ ") > 0 หรือ Instr(LCase(ParaValue),"net user") > 0 หรือ Instr(LCase(ParaValue)," หรือ ") > 0 จากนั้น
การตอบสนองเขียน "<script language='javascript'>"
Response.Write "alert('Illegal request!'); 'พบข้อความพร้อมท์การโจมตี SQL
Response.Write "location.href='http://blog.downcodes.com/';" พบ URL การเปลี่ยนเส้นทางการโจมตีแบบฉีด SQL
ตอบกลับเขียน "<script>"
การตอบกลับสิ้นสุด
อื่น
SafeRequest=ParaValue
สิ้นสุดถ้า
ฟังก์ชัน End
จะแทนที่คำขอของคุณด้วยฟังก์ชัน SafeRequest