找回密码
 注册
广告投放 虚位以待【阿里云】2核2G云新老同享 99元/年,续费同价做网站就用糖果主机-sugarhosts.comJtti.com-新加坡服务器,美国服务器,香港服务器
查看: 149|回复: 0

网站安全:整站防止SQL注入式入侵

[复制链接]
发表于 2010 年 10 月 7 日 04:50:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×

防止SQL注入,通常一个一个文件修改不仅麻烦而且还有漏掉的危险,下面我说一下如何从整个系统防止注入。 做到以下三步,相信你的程序就会比较安全了,而且对整个网站的维护也将变的简单。
一、数据验证类
parameterCheck.cs     public class parameterCheck{     public static bool isEmail(string emailString){         return System.Text.RegularExpressions.Regex.IsMatch(emailString, "['\\w_-]+(\\.['\\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
在你的Web.config文件中,在下面增加一个标签,如下:
<appSettings>     <add key="safeParameters" value="OrderID-int32,CustomerEmail-email,ShippingZipcode-USzip" /> </appSettings>
其中key是后面的值为“OrderId-int32”等,其中“-”前面表示参数的名称例如:OrderId,后面的int32表示数据类型。
三、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");     } }
以后需要修改的时候我们只需要修改以上三个文件,对整个系统的维护将会大大提高效率,当然你可以根据自己的需要增加其它的变量参数和数据类型。
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|金光论坛

GMT+8, 2025 年 2 月 2 日 20:10 , Processed in 0.026282 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表