方法1:Id=Trim(Request.Form("UserId"))
......
if Instr(Id,"=")>0 or Instr(Id,"%")>0 or Instr(Id,chr(32))>0 or Instr(Id,"?")>0 or Instr(Id,"&")>0 or Instr(Id,";")>0 or Instr(Id,",")>0 or Instr(Id,"'")>0 or Instr(Id,",")>0 or Instr(Id,chr(34))>0 or Instr(Id,chr(9))>0 or Instr(Id,"?")>0 or Instr(Id,"$")>0 then
Err=True
.................
Response.Redirect "Err.asp?ErrType=1&ErrId=3"
Response.End
end if
方法2: select ? from user where username='&&replace(request.form("UserID"),',")&&' and password=' &&replace(request.form
("Pass"),',")&&
方法3:在ASP程序提取数据库表单内容的“select * from”语句前增加一条关闭SQL出错信息的显示语句“on error resume next”,如
on error resume next
rs.Open "select ? from xinwen where xw_id="&&request.QueryString ("xw_id"),conn,1,3
方法4:在你的ASP语句中(一般是在最开头的地方),加上一句
On Error Resume Next
(注意,这句必须加在<% %>里面,不然IIS可不认。)
这就是著名的容错语句,当ASP语句执行时发生错误,就跳过错误,继续向下执行,而且不会返回错误信息。
当然,入侵者看不到错误信息,调试人员也看不到。所以,你一定在把一个ASP程序调试完毕后,再把这个语句加到ASP语句的顶端。否则,调试的时候,会烦死你的~~~~~~:O)
阅读(1207) | 评论(0) | 转发(0) |