J'ai récemment repris un projet de quelqu'un d'autre et découvert qu'il y avait une vulnérabilité d'injection SQL Comme je ne voulais pas changer trop de codes, je n'avais pas besoin d'utiliser la méthode des paramètres pour empêcher l'injection. Nous ne pouvons utiliser que la méthode stupide traditionnelle.
1. Créez un nouveau fichier Global.asax.
2. Ajoutez le code suivant :
void Application_BeginRequest(object sender, EventArgs e) { bool result = false; if (Request.RequestType.ToUpper() == "POST") { //post方式的我就不写了。 } else { result = ValidUrlGetData(); } if (result) { Response.Write("您提交的数据有恶意字符!"); Response.End(); } } /// <summary> /// 获取QueryString中的数据 /// </summary> public static bool ValidUrlGetData() { bool result = false; for (int i = 0; i < HttpContext.Current.Request.QueryString.Count; i++) { result = Validate(HttpContext.Current.Request.QueryString[i].ToString()); if (result) { break; }//如果检测存在漏洞 } return result; } public static string []strs = new string[] {"select","drop","exists","exec","insert","delete","update","and","or","user" };//此处我随便加了几个,大家可以多加点哈。 public static bool Validate(string str) { for (int i = 0; i < strs.Length; i++) { if (str.IndexOf(strs[i]) != -1) { return true; break; } } return false; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!