日期:2014-05-18  浏览次数:20490 次

请问用了Parameters带参数后,还用对字符进行过滤吗?
各位大虾,你们好,请看我的代码:

 #region HtmlEncode
  /// <summary>
  /// 说明:过滤危险字符
  /// 返回值:处理后的这符串。
  /// 参数: str原字符串。
  /// 创建日期:2008-2-23
  /// 创建人:
  /// </summary>

  public static string HtmlEncode(string str)
  {
  if (str.Trim().ToString() == "")
  { str = ""; }
  else
  {
  str = str.Replace("&", "&amp;");
  str = str.Replace("<", "&lt;");
  str = str.Replace(">", "&gt");
  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注入分为轻级注册和深度注入。要防深度注入还是有必要再次过滤。
深度注入的文章,之前有看过。忘记哪看过了。
不过通常讲很多人还是只过滤到轻级注入
------解决方案--------------------
探讨
SQL注入分为轻级注册和深度注入。要防深度注入还是有必要再次过滤。
深度注入的文章,之前有看过。忘记哪看过了。
不过通常讲很多人还是只过滤到轻级注入

------解决方案--------------------