mvc html页面直接拼接sql字符串(浏览器浏览源代码可以直接看到,借助工具可以随便修改),ajax发送后台接收并返回结果
1 public bool CheckDanSql(string strSql) 2 { 3 strSql = strSql.ToUpper().Replace("\r\n", "").Trim(); 4 return strSql.Length >= 6 && 5 !(strSql.Substring(0, 6) != "SELECT") && 6 (strSql.IndexOf("UPDATE") < 0 && 7 strSql.IndexOf("INSERT") < 0 && 8 strSql.IndexOf("DELETE") < 0 && 9 strSql.IndexOf("DROP") < 0 && 10 strSql.IndexOf("CREATE") < 0 && 11 strSql.IndexOf("ALTER") < 0 && 12 strSql.IndexOf("EXEC") < 0 && 13 strSql.IndexOf("ADD") < 0) && 14 strSql.IndexOf("XP_CMDSHELL") < 0; 15 }
一个600人的公司搞的架子,这个.....
如果我的SQL本身内部又是通过拼字符串,然后用sp_execute来执行,这个方法不就摆设了
select 100 as c1,200 as c2