如何防止 SQL 注入攻击
SQL 注入:就是通过把 SQL 命令插入到 Web 表单递交或输入域名或页面请求的查询字符
串,最终达到欺骗服务器执行恶意的 SQL 命令。具体来说,它是利用现有应用程序,将(恶
意)的 SQL 命令注入到后台数据库引擎执行的能力,它可以通过在 Web 表单中输入(恶
意)SQL 语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行 SQL
语句。
防止的方法:
(1) 永远不要信任用户的输入,要对用户的输入进行校验,可以通过正则表达式,
或限制长度,对单引号和双"-"进行转换等。
(2) 永远不要使用动态拼装 SQL,可以使用参数化的 SQL 或者直接使用存储过程
进行数据查询存取。
(3) 永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数
据库连接。
(4) 不要把机密信息明文存放,请加密或者 hash 掉密码和敏感的信息。
(5) 应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始
错误信息进行包装,把异常信息存放在独立的表中。
如何防止 SQL 注入攻击
利用新对象 PreparedStatement 对象完成,先将 SQL 骨架发送给数据库服务器,然后再
将参数单独发给服务器,并将参数中的关键字当做一个普通字符串来处理,进而起到防止
SQL 注入的问题