温馨提示×

c#如何避免sql注入

小新
309
2021-02-05 10:49:28
栏目: 云计算

c#如何避免sql注入

c#避免sql注入的方法:

1.在Web.config文件中,下面增加一个标签,例如:

  

< appSettings>

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

  < /appSettings>

2.在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("USzip")){

  if(!parameterCheck.isUSZip(parameterValue)) Response.Redirect("parameterError.aspx");

  }

  else if (parameterType.Equals("email")){

  if(!parameterCheck.isEmail(parameterValue)) Response.Redirect("parameterError.aspx");

  }

  }



0