C# 替换特殊字符防SQL注入

/*
示例:
string strName = "123'";
strName.ReplaceSQLChar(); //123
*/

/// <summary>
/// 替换特殊字符,防SQL注入
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string ReplaceSQLChar(this 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;
}
原创文章 79 获赞 56 访问量 17万+

猜你喜欢

转载自blog.csdn.net/qq_23009105/article/details/94596523
今日推荐