各位大虾,你们好,请看我的代码:
#region HtmlEncode
/// <summary>
/// 说明:过滤危险字符
/// 返回值:处理后的这符串。
/// 参数: str原字符串。
/// 创建日期:2008-2-23
/// 创建人:
/// </summary>
public static string HtmlEncode(string str)
{
if (str.Trim().ToString() == "")
{ str = ""; }
else
{
str = str.Replace("&", "&");
str = str.Replace("<", "<");
str = str.Replace(">", ">");
str = str.Replace("'", "’");
str = str.Replace("*", "");
str = str.Replace("\n", "<br/>");
str = str.Replace("\r\n", "<br/>");
//str = str.Replace("?","");
str = str.Replace("select", "");
str = str.Replace("insert", "");
str = str.Replace("update", "");
str = str.Replace("delete", "");
str = str.Replace("create", "");
str = str.Replace("drop", "");
str = str.Replace("delcare", "");
}
return str.Trim();
}
#endregion
UserName = HtmlEncode(Uname.Text.Trim().ToString());
UserPass = GetMd5(HtmlEncode(Upass.Text.Trim().ToString()));
string StrSql = "select top 1 id from admin where username=@username and userpass=@userpass and is_open=true and is_admin=true";
MyDBlink.GetSqlCommand(StrSql);
MyDBlink.comm.Parameters.AddWithValue("@username", SqlDbType.VarChar);
MyDBlink.comm.Parameters["@username"].Value = UserName;
MyDBlink.comm.Parameters.AddWithValue("@userpass", SqlDbType.VarChar);
MyDBlink.comm.Parameters["@userpass"].Value = UserPass;
我进行了一次过滤字符串后,又用了一次Parameters,我想请问一下,我这么做多余吗?用了Parameters后还需要对字符串进行过滤吗?谢谢
------解决方案--------------------------------------------------------
-_- 这么复杂, 取值的时候处理,不好么?
你难道不允许文章内容 标题之类的含有 select insert之类的?
------解决方案--------------------------------------------------------
凡是用户的输入你就先过滤一下 没有坏处
------解决方案--------------------------------------------------------
用了Parameters后不需要对字符串进行过滤
------解决方案--------------------------------------------------------
如果你的sql语句不是动态拼接的,不用再进行过滤
------解决方案--------------------------------------------------------
不用
------解决方案--------------------------------------------------------
基本上不用了
------解决方案--------------------------------------------------------
SQL注入分为轻级注册和深度注入。要防深度注入还是有必要再次过滤。
深度注入的文章,之前有看过。忘记哪看过了。
不过通常讲很多人还是只过滤到轻级注入
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------