建议看一下SQL注入攻击的文章

解决方案 »

  1.   

    <%
    On Error Resume Next
    Dim strTemp, oRegExpIf LCase(Request.ServerVariables("HTTPS")) = "off" Then
    strTemp = "http://"
    Else
    strTemp = "https://"
    End IfstrTemp = strTemp & Request.ServerVariables("SERVER_NAME")
    If Request.ServerVariables("SERVER_PORT") <> 80 Then strTemp = strTemp & ":" & Request.ServerVariables("SERVER_PORT")strTemp = strTemp & Request.ServerVariables("URL")If Trim(Request.QueryString) <> "" Then strTemp = strTemp & "?" & Trim(Request.QueryString)strTemp = LCase(strTemp)Set oRegExp = New RegExp
    oRegExp.IgnoreCase = True
    oRegExp.Global = True
    oRegExp.Pattern = "select%20|insert%20|delete%20|update%20|exec|'|asc\(|char\(|mid\(|truncate%20|count\(|drop%20|xp_cmdshell|net%20localgroup%20administrators|net%20user|%20or%20"
    If oRegExp.Test(strTemp) Then
     Response.Write "<Script Language='JavaScript'>"
     Response.Write "alert('警告:url中含有非法字符!!该操作已被记录,你的ip是:"& Request.ServerVariables("REMOTE_ADDR") &"');"
     Response.Write "history.back();"
     Response.Write "</Script>"
     Response.End
    End If
    %>
      

  2.   

    To  ltq2001932(小强) 
    你的根本就是ASP的代码嘛!!!!在Java里面尽量不应该使用直接匹配的方法在Java如果操作有参数的数据库操作,应该尽可能的使用
    PreparedStatement prep = conn.prepareStatement("select * from table where title=?");
    prep.setString(1, text);
    ResultSet rs = prep.executeQuery();
    这样可以代码清晰又没有注入问题