国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.Net程序如何防止被注入(整站通用)

2024-07-10 12:58:57
字體:
來源:轉載
供稿:網友
 

作者:淘特網

出處:淘特網

注:轉載請注明出處

防止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>下面增加一個標簽:如下

 <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");
    }
}


以后需要修改的時候我們只需要修改以上三個文件,對整個系統的維護將會大大提高效率,當然你可以根據自己的需要增加其它的變量參數和數據類型。




發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乐都县| 吉安县| 浮山县| 铜山县| 天水市| 赤壁市| 陈巴尔虎旗| 芜湖县| 宕昌县| 太湖县| 桑植县| 台湾省| 额敏县| 郁南县| 古田县| 大城县| 彰化市| 莱阳市| 新民市| 玉林市| 达拉特旗| 清苑县| 内乡县| 嵩明县| 禄劝| 梁平县| 康定县| 遵义县| 吐鲁番市| 海晏县| 吉安县| 晋江市| 白玉县| 梁山县| 怀安县| 高淳县| 商都县| 罗定市| 虞城县| 芦溪县| 高淳县|