国产探花免费观看_亚洲丰满少妇自慰呻吟_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");
    }
}


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




發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 延长县| 黄石市| 连云港市| 昆明市| 北川| 泾源县| 渝北区| 乌海市| 格尔木市| 开阳县| 和田市| 怀化市| 宝山区| 华宁县| 共和县| 彰化市| 迁安市| 南皮县| 遂宁市| 吴堡县| 通许县| 怀仁县| 娄烦县| 江陵县| 农安县| 成都市| 公主岭市| 珠海市| 礼泉县| 宁阳县| 合江县| 连云港市| 铜山县| 蒲城县| 北票市| 瓦房店市| 潢川县| 衡水市| 福海县| 石门县| 通海县|