[推荐]ASP.Net程序防注入通用源码
2009-03-27 14:54
573 查看
防止sql注入,通常一个一个文件修改不仅麻烦而且还有漏掉的危险,下面我说一上如何从整个系统防止注入。
做到以下三步,相信的程序将会比较安全了,而且对整个网站的维护也将会变的简单。
一、数据验证类:
parameterCheck.cs
二、Web.config
在你的Web.config文件中,在<appSettings>下面增加一个标签:如下
其中key是<saveParameters>后面的值为"OrderId-int32"等,其中"-"前面表示参数的名称比如:OrderId,后面的int32表示数据类型。
三、Global.asax
在Global.asax中增加下面一段:
以后需要修改的时候我们只需要修改以上三个文件,对整个系统的维护将会大大提高效率,当然你可以根据自己的需要增加其它的变量参数和数据类型。
做到以下三步,相信的程序将会比较安全了,而且对整个网站的维护也将会变的简单。
一、数据验证类:
parameterCheck.cs
public class parameterCheck{ public static bool isEmail(string emailString){ return System.Text.RegularExpressions.Regex.IsMatch(emailString, "['\\w_-]+(+)*@[-//w_-]+(//.[-//w_-]+)*//.[a-zA-Z]{2,4]\\.['\\w_-]+)*@['\\w_-]+(\\.['\\w_-]+)*\\.[a-zA-Z]{2,4}"); } public static bool isInt(string intString){ return System.Text.RegularExpressions.Regex.IsMatch(intString ,"^(\\d{5}-\\d{4})|(\\d{5})$"); } public static bool isUSZip(string zipString){ return System.Text.RegularExpressions.Regex.IsMatch(zipString ,"^-[0-9]+$|^[0-9]+$"); } } |
在你的Web.config文件中,在<appSettings>下面增加一个标签:如下
<appSettings> <add key="safeParameters" value="OrderID-int32,CustomerEmail-email,ShippingZipcode-USzip" /> </appSettings> |
三、Global.asax
在Global.asax中增加下面一段:
protected void Application_BeginRequest(Object sender, EventArgs e){ String[] safeParameters = System.Configuration.ConfigurationSettings.AppSettings["safeParameters"].ToString().Split(','); for(int i= 0 ;i < safeParameters.Length; i++){ String parameterName = safeParameters.Split('-')[0]; String parameterType = safeParameters.Split('-')[1]; isValidParameter(parameterName, parameterType); } } public void isValidParameter(string parameterName, string parameterType){ string parameterValue = Request.QueryString[parameterName]; if(parameterValue == null) return; if(parameterType.Equals("int32")){ if(!parameterCheck.isInt(parameterValue)) Response.Redirect("parameterError.aspx"); } else if (parameterType.Equals("double")){ if(!parameterCheck.isDouble(parameterValue)) Response.Redirect("parameterError.aspx"); } else if (parameterType.Equals("USzip")){ if(!parameterCheck.isUSZip(parameterValue)) Response.Redirect("parameterError.aspx"); } else if (parameterType.Equals("email")){ if(!parameterCheck.isEmail(parameterValue)) Response.Redirect("parameterError.aspx"); } } |
相关文章推荐
- [ASP.NET] .Net程序防注入通用源码
- C# ASP.NET 通用权限管理系统组件源码中WCF例子程序客户端运行详细配置参考
- C# ASP.NET 通用权限管理系统组件源码中WCF例子程序服务器端运行详细配置参考
- ASP.NET程序如何防止被注入(整站通用)
- C# ASP.NET 通用权限管理系统组件源码中WCF例子程序服务器端运行详细配置参考
- C# ASP.NET 通用权限管理系统组件源码中WCF例子程序服务器端运行详细配置参考
- ASP.NET程序如何防止被注入(整站通用)
- ASP.NET,C#.NET 通用权限系统组件源码使用说明,程序开发的尚方宝剑,程序架构标准参考,程序开发必备知识
- C# ASP.NET 通用权限管理系统组件源码中WCF例子程序客户端运行详细配置参考
- 推荐几个通用源码 asp.net之一
- ASP.NET程序如何防止被注入(整站通用)
- ASP.NET程序如何防止被注入(整站通用)
- C# ASP.NET 通用权限管理系统组件源码中WCF例子程序服务器端运行详细配置参考
- ASP.NET程序如何防止被注入(整站通用)
- asp.Net通用防注入程序(整站通用)
- ASP.NET,C#.NET 通用权限系统组件源码使用说明,程序开发的尚方宝剑,程序架构标准参考,程序开发必备知识
- C# ASP.NET 通用权限管理系统组件源码中WCF例子程序客户端运行详细配置参考
- 【提供全部源码下载】C# ASP.NET 全国最好用的通用数据库访问层代码之一
- asp.net使用ODP即oracle连接方式的的防注入登录验证程序
- Asp.net通用数据统计报表源码