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

首頁 > 學院 > 開發設計 > 正文

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

2019-11-18 19:13:21
字體:
來源:轉載
供稿:網友

作者:淘特網

出處:淘特網

注:轉載請注明出處

防止sql注入,通常一個一個文件修改不僅麻煩而且還有漏掉的危險,下面我說一上如何從整個系統防止注入。

做到以下三步,相信的程序將會比較安全了,而且對整個網站的維護也將會變的簡單。

一、數據驗證類:
parameterCheck.cs

 
public class parameterCheck{
    public static bool isEmail(string emailString){
        return System.Text.RegularEx//.['//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");
    }
}
 

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 寿宁县| 方正县| 英德市| 波密县| 灌阳县| 桃园市| 报价| 宾川县| 桐庐县| 伊宁县| 开封市| 马尔康县| 乐昌市| 若尔盖县| 永靖县| 开鲁县| 平和县| 南丰县| 凤台县| 乳山市| 望江县| 山西省| 乐业县| 英山县| 大余县| 桦南县| 澄城县| 滨州市| 循化| 堆龙德庆县| 尤溪县| 噶尔县| 印江| 乾安县| 凌云县| 应城市| 桐柏县| 临安市| 延安市| 濉溪县| 龙井市|