标题 | 数据库防脚本注入 |
内容 | 网站安全非常重要,所以一个网站必须要有对攻击的基础防范措施,比如脚本攻击,跨域攻击,数据库注入攻击等。下面分享一个使用的防止数据库Sql脚本注入的使用类 using System; using System.Collections.Generic; using System.Text; namespace NZS.Common { public class Filter { /// /// 检测是否含有危险字符(防止Sql注入) /// /// 预检测的内容 /// 返回True或false public static bool HasSqlKeywords(string contents) { bool ReturnValue = false; if (contents.Length > 0) { string LowerStr = contents.ToLower(); string RxStr = @”(/sand/s)|(/sand/s)|(/slike/s)|(select/s)|(insert/s)|(delete/s)|(update/s[/s/S].*/sset)|(create/s)|(/stable)|(<[iframe|/iframe|script|/script])|(‘)|(/sexec)|(declare)|(/struncate)|(/smaster)|(/sbackup)|(/smid)|(/scount)|(cast)|(%)|(/sadd/s)|(/salter/s)|(/sdrop/s)|(/sfrom/s)|(/struncate/s)|(/sxp_cmdshell/s)”; //Match 检查数据库里面关键字和一些特殊字符,如单引号 System.Text.RegularExpressions.Regex Rx = new System.Text.RegularExpressions.Regex(RxStr); ReturnValue = Rx.IsMatch(LowerStr, 0); } return ReturnValue; } /// /// 过滤 Sql 语句字符串中的注入脚本 /// /// 传入的字符串 /// 过滤后的字符串 public static string SqlFilter(string str) { str = str.Replace(“””, “‘’”); //单引号替换成两个单引号 str = str.Replace(“‘”, “‘”); //半角封号替换为全角封号,防止多语句执行 str = str.Replace(“;”, “;”); //半角括号替换为全角括号 str = str.Replace(“(“, “(”); str = str.Replace(“)”, “)”); ///////////////要用正则表达式替换,防止字母大小写得情况//////////////////// //去除执行存储过程的命令关键字 str = str.Replace(“Exec”, “”); str = str.Replace(“Execute”, “”); //去除系统存储过程或扩展存储过程关键字 str = str.Replace(“xp_”, “x p_”); str = str.Replace(“sp_”, “s p_”); //防止16进制注入 str = str.Replace(“0x”, “0 x”); return str; } } } |
随便看 |
|
在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。