Anti SQL Inject
1.Web 应用程序执行时如果发生异常,通过配置严禁将任何技术信息暴露: Web.Config: < customErrors mode ="RemoteOnly" /> 2.在客户端应用程序 2.1 程序代码中一定要拼接 "参数化 SQL" ,并采取安全的"命令参数式" ADO.Net API ,连接数据库并提交该查询,另外今后尽量减少应用程序拼接 SQL,而多使用存储过程。 参阅如下代码: Code private void cmdLogin_Click( object sender, System.EventArgs e) { string strCnx = ConfigurationSettings.AppSettings[ " cnxNWindBad " ]; using (SqlConnection cnx = new SqlConnection(strCnx)) { SqlParameter prm; cnx.Open(); string TableName = " [users] " ; string strQry = // 注意 @username 和 @password 就是前面所指参数化 SQL 中的参数 // 可以理解为是 "字段值" 的"值占位符",不要用它去占位表名、列名、以及关键字 // 同时用户交互录入的也的确只能是 "字段值" // 这样 ADO