防代码注入
有些网站特别容易受到攻击,所以我们要写一写东西防止代码注入,首先我们新建一个global.asax文件并在该global.asax.cs文件中添加
1 protected void Application_BeginRequest(object sender, EventArgs e) 2 { 3 //遍历Post参数,隐藏域除外 4 foreach (string i in this.Request.Form) 5 { 6 if (i == "__VIEWSTATE") continue; 7 this.goErr(this.Request.Form[i].ToString()); 8 } 9 //遍历Get参数。 10 foreach (string i in this.Request.QueryString) 11 { 12 this.goErr(this.Request.QueryString[i].ToString()); 13 } 14 15 } 16 17 private void goErr(string tm) 18 { 19 if (SqlFilter2(tm)) 20 { 21 Response.Redirect("Default.aspx"); 22 Response.End(); 23 } 24 } 25 26 public static bool SqlFilter2(string InText) 27 { 28 string word = ConfigurationManager.AppSettings["SeqKey"]; 29 if (InText == null) 30 return false; 31 foreach (string i in word.Split('|')) 32 { 33 if ((InText.ToLower().IndexOf(i + " ") > -1) || (InText.ToLower().IndexOf(" " + i) > -1)) 34 { 35 return true; 36 } 37 } 38 return false; 39 }
同时我们要在web.config文件中添加一个节点
1 <appSettings> 2 <add key="ShangYe.Common:DatabaseVersion" value="SQLServer2000"/> 3 <add key="SeqKey" value="and|exec|insert|select|delete|update|chr|mid|master|or|truncate|char|declare|join"/> 4 </appSettings>