/// <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; | |
} |
原文:https://www.cnblogs.com/chuangli/p/14331440.html