sql注入过滤

  • Post author:
  • Post category:其他


/// <summary>

/// Sql过滤器

/// </summary>

public class SqlCleaner

{

private static List<string> injectWords = new List<string>();

/// <summary>

/// 静态构造函数

/// </summary>

static SqlCleaner()

{

#region 关键字(可任意变更,不区分大小写)

injectWords.Add(@”add”);

injectWords.Add(@”procedure”);

injectWords.Add(@”alter”);

injectWords.Add(@”and”);

injectWords.Add(@”from”);

injectWords.Add(@”grant”);

injectWords.Add(@”right”);

injectWords.Add(@”having”);

injectWords.Add(@”in”);

injectWords.Add(@”select”);

injectWords.Add(@”inner”);

injectWords.Add(@”insert”);

injectWords.Add(@”into”);

injectWords.Add(@”join”);

injectWords.Add(@”left”);

injectWords.Add(@”create”);

injectWords.Add(@”like”);

injectWords.Add(@”table”);

injectWords.Add(@”not”);

injectWords.Add(@”database”);

injectWords.Add(@”truncate”);

injectWords.Add(@”delete”);

injectWords.Add(@”union”);

injectWords.Add(@”update”);

injectWords.Add(@”drop”);

injectWords.Add(@”or”);

injectWords.Add(@”where”);

injectWords.Add(@”exec”);

injectWords.Add(@”execute”);

injectWords.Add(@”exists”);

#endregion

#region 符号(可任意变更,不区分大小写)

injectWords.Add(@”–“);

injectWords.Add(@”+”);

injectWords.Add(@”-“);

injectWords.Add(@”*”);

injectWords.Add(@”=”);

#endregion

}

/// <summary>

/// 过滤

/// </summary>

/// <param name=”input”>输入</param>

/// <returns>输出</returns>

public static string Clean(string input)

{

if (string.IsNullOrWhiteSpace(input))

{

return input;

}

injectWords.ForEach(injectWord =>

{

var startIndex = input.IndexOf(injectWord, StringComparison.CurrentCultureIgnoreCase);

while (startIndex >= 0)

{

input = input.Remove(startIndex, injectWord.Length);

startIndex = input.IndexOf(injectWord, StringComparison.CurrentCultureIgnoreCase);

}

});

return input;

}

}



版权声明:本文为wzx_it原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。