• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    .Net程序防止被注入代码(整站通用)分享

    做到以下三步,相信的程序将会比较安全了,而且对整个网站的维护也将会变的简单。

    一、数据验证类:
    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>下面增加一个标签:如下

    复制代码 代码如下:

    appSettings>
    add key="safeParameters" value="OrderID-int32,CustomerEmail-email,ShippingZipcode-USzip" />
    /appSettings>

    其中key是saveParameters>后面的值为"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");
     }
    }

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

    您可能感兴趣的文章:
    • c#.net全站防止SQL注入类的代码
    • asp.net 防止SQL注入攻击
    上一篇:asp.net中调用Office来制作3D统计图的实例代码
    下一篇:Attribute/特性心得随笔
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    .Net程序防止被注入代码(整站通用)分享 .Net,程序,防止,被,注入,