中成网站建设
    成都做网站,就选中成网站建设!专业四川网站建设,成都网站建设服务提供商
            企业宣传网站建设、电子商务网站建设、OA办公系统。联系电话:028-66165255
    资讯列表  
 五种常见的ASP.NET安全缺陷
 ping的命令 执行的技巧法则
 全面解析跨站脚本攻击
 大规模SQL注入攻击爆发 据称攻…
 微软:被病毒感染的XP系统无法…
 Adobe Reader 9.3.2发布 修补1…
 网上报警 虚假网站举报 如何举…
 微软下周二发布11个漏洞补丁程…
 四大最被高估的安全技术 用户感…
 入侵奥巴马帐号法国黑客自称是…
 负责公司补丁的安全经理必看:…
 DNSPOD吴洪声浅谈域名和DNS安全…
 针对IE新“零日”漏洞的两种临…
 提醒:及时下载安装微软两个漏…
 8大措施帮你构筑Access安全防线…
    资讯详情  
整站如何防止SQL注入方式入侵
发布时间:2009-09-09                  来源:成都网站建设--中成网建         【加入收藏】

 

防止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文件中,在下面增加一个标签,如下:

其中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[i].Split('-')[0];
        String parameterType = safeParameters[i].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");
    }
}

以后需要修改的时候我们只需要修改以上三个文件,对整个系统的维护将会大大提高效率,当然你可以根据自己的需要增加其它的变量参数和数据类型。

 

 

 
上一篇:如何应对跨站脚本攻击
下一篇:MSSQL日期时间函数大全
【打印】    【关闭】    【字体变小】    【字体变大】

友情链接

首页  |  建站学院  |  网站建设  |  成功案例  |  业务体系  |  软件定制  |  解决方案  |  联系我们  |  免责声明
中成网建公司地址:四川省成都市双楠双安东巷1号18-3-5 电话:028-6616 5255 版权所有 @ 中成网建
成都网站建设网址:www.csccd.net www.csccd.cn 邮箱:web#csccd.net
信息产业部备案号:蜀ICP备08106559号