防御
所有的查询语句建议使用数据库提供的参数化查询接口**,参数化的语句使用参数而不是将用户<br>输入变量嵌入到 SQL 语句中,即不要直接拼接 SQL 语句。例如 Node.js 中的 mysqljs 库的 query<br>方法中的 ? 占位参数
严格限制Web应用的数据库的操作权限**,给此用户提供仅仅能够满足其工作的最低权限,从而<br>最大限度的减少注入攻击对数据库的危害
后端代码检查输入的数据是否符合预期**,严格限制变量的类型,例如使用正则表达式进行一些<br>匹配处理
对进入数据库的特殊字符(',",\,<,>,&,*,; 等)进行转义处理,或编码转换**。基本上<br>所有的后端语言都有对字符串进行转义处理的方法,比如 lodash 的 lodash._escapehtmlchar<br>库。