首页 > 数据库技术 > 详细

防止sql注入

时间:2021-01-26 22:47:44      阅读:34      评论:0      收藏:0      [点我收藏+]
/// <summary>
  /// SQL注入字符清理
  /// </summary>
  /// <param name="value">需要清理的字符串</param>
  /// <returns></returns>
  public static string SqlTextClear(string value)
  {
  string[] replaceStr = new string[] { ",", "<", ">", "--", "‘", "\"", "=", "%", " " };
  foreach (var item in replaceStr)
  {
  value = value.Replace(item, "");
  }
  return value;
  }
  /// <summary>
  /// 替换特殊字符,防SQL注入
  /// </summary>
  /// <param name="str"></param>
  /// <returns></returns>
  public static string ReplaceSQLChar(string str)
  {
  if (string.IsNullOrEmpty(str))
  return "";
   
  str = str.Replace("‘", "");
  str = str.Replace(";", "");
  str = str.Replace(",", "");
  str = str.Replace("?", "");
  str = str.Replace("<", "");
  str = str.Replace(">", "");
  str = str.Replace("(", "");
  str = str.Replace(")", "");
  str = str.Replace("@", "");
  str = str.Replace("=", "");
  str = str.Replace("+", "");
  str = str.Replace("*", "");
  str = str.Replace("&", "");
  str = str.Replace("#", "");
  str = str.Replace("%", "");
  str = str.Replace("$", "");
   
  //删除与数据库相关的词
  str = Regex.Replace(str, "select", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "insert", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "delete from", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "count", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "drop table", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "truncate", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "asc", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "mid", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "char", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "xp_cmdshell", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "exec master", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "net localgroup administrators", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "and", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "net user", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "or", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "net", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "-", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "delete", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "drop", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "script", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "update", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "and", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "chr", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "master", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "truncate", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "declare", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, "mid", "", RegexOptions.IgnoreCase);
   
  return str;
  }

防止sql注入

原文:https://www.cnblogs.com/chuangli/p/14331440.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!