首先说明,因为项目原因,不能使用参数传参。现在需要向数据库加入的数据里含有单引号“'”(输入的是英文,难免有单引号),所有即要防止注入又要可输入单引号。请大家帮帮忙,先谢谢大家了啊!!!

解决方案 »

  1.   

    这样就行了
    A=TEXTBOX.TEXT.REPLACE("'","''")
      

  2.   

    STRING A=TEXTBOX.TEXT.REPLACE("'","''")
      

  3.   

    csdn上有很多过滤的问题,可以先搜索一下,另外,注入不仅仅是单引号的问题/// <summary>
            /// 字符过滤编码函数,在实际编程中,建议过滤后还应该使用参数构造sql语句
            /// </summary>
            /// <param name="value">输入字符串</param>
            /// <returns></returns>
            public static string StringEnCode(string value)
            {
                if (value.Trim().Length == 0)
                    return string.Empty;
                value = value.Replace(((char)44).ToString(), "&#59;");//;
                value = value.Replace(((char)10).ToString(), "<br>");//br
                value = value.Replace(((char)32).ToString(), "&#32;");//空格
                value = value.Replace(((char)37).ToString(), "&#37;");//%
                value = value.Replace(((char)39).ToString(), "&#39;");//'
                value = value.Replace(((char)44).ToString(), "&#44;");//,
                value = value.Replace(((char)60).ToString(), "&#60;");//<
                value = value.Replace(((char)62).ToString(), "&#62;");//>
                value = value.Replace(((char)92).ToString(), "&#92;");//\\
                value = value.Replace(((char)94).ToString(), "&#94;");//^
                value = value.Replace(((char)45).ToString() + ((char)45).ToString(), "&#45;&#45;");//--
                value = Regex.Replace(value, "<a href=", "<a target=_blank href=", RegexOptions.Compiled | RegexOptions.IgnoreCase);
                Regex regex = new Regex("<a href=", RegexOptions.Compiled | RegexOptions.IgnoreCase);
                value = regex.Replace(value, "<a target=_blank href=");
                return value;
            }
      

  4.   

    SQL防注入:
    1. 传入参数有两种:int, string int型参数拼接: 
    string sql = "select * from table1 where id=" + int.Parse(Request["id"]); string型参数拼接: 
    string sql = "select * from table1 where name='" + Request["name"].Replace("'","''") + "'"; 
    ======== 
    请问谁可以注入?
      

  5.   

    参考:
    http://www.cnblogs.com/insus/articles/1424371.html
      

  6.   


    <EditItemTemplate>
        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Address") %>' Width="500px"></asp:TextBox>
    </EditItemTemplate>
    想在更新的时候把TextBox1中的内容,进行过滤(还是替换单引号)应该怎么写呢??