C#SQL注入攻击检查类SQLInjection
C#SQL注入攻击检查类SQLInjection
C# Code: /// <summary> /// C#SQL注入攻击检查类 /// </summary> public static class SQLInjection { private const string StrKeyWord = @"select|insert|delete|count(|drop table|update|truncate|asc(|mid(|char(|xp_cmdshell|exec master|netlocalgroup administrators|net user|""|'"; /// <summary> /// 检查文本是否包含SQL关键字 /// </summary> /// <param name="content">被检查的字符串</param> /// <returns>存在SQL关键字返回true,不存在返回false</returns> private static bool CheckKeyWord(string content) { string word = content; string[] patten1 = StrKeyWord.Split('|'); foreach (string i in patten1) { if (word.Contains(" " + i) || word.Contains(i + " ")) { return true; } } return false; } /// <summary> /// 检查文本是否注入攻击 /// </summary> /// <param name="content">被检查的字符串</param> /// <returns></returns> public static bool IsAttack(string content) { if (String.IsNullOrWhiteSpace(content)) return false; //存在单引号且包含SQL命令 return (content.Contains("'") || CheckKeyWord(content)); } /// <summary> /// 移除SQL命令及单引号 /// </summary> /// <param name="content">被检查的字符串</param> /// <returns></returns> public static string RemoveKeywords(string content) { if (String.IsNullOrWhiteSpace(content)) return ""; //替换高危险单引号 content = content.Replace("'", ""); string[] patten1 = StrKeyWord.Split('|'); foreach (string i in patten1) { content = content.Replace(i, ""); } return content; } //来源:C/S框架网(www.csframework.com) QQ:23404761 C# Code: public static void Test() { Console.WriteLine(SQLInjection.IsAttack("asdf'asdf")); string sql = "测试注入攻击'xp_cmdshell spXXX asdfjalsdfasdf, select * from user"; Console.WriteLine(SQLInjection.IsAttack(sql)); Console.WriteLine(SQLInjection.RemoveKeywords(sql)); } //来源:C/S框架网(www.csframework.com) QQ:23404761
参考文档:
Sql类型与.Net(C#)类型对应关系表(转) 将SQLServer数据类型转换为C#.Net类型 [原创]C# Access 模糊查询SQL语句 SQL注入漏洞全接触--入门篇 SQL注入漏洞全接触--进阶篇 SQL注入漏洞全接触--高级篇 SQL注入法攻击一日通 SQL Server应用程序中的高级SQL注入 SQL注入攻击的原理及其防范措施 C# 检查字符串,防SQL注入攻击 C#实现SQL查询分析器(C# Visual SQL Query Designer) C#SQL客户端处理大文本数据通用接口 C#.NET SQL数据库备份与还原解决方案 C#使用using语法自动关闭SQLConnection数据库连接 C# 动态组合SQL脚本LIKE语句及查询参数防SQL注入攻击
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |