SQL注入攻击:
攻击者把SQL命令插入到web表单的输入域或者页面请求的查询字符中,欺骗服务器执行恶意的SQL命令。
常见防止SQL注入的方法:
1、替换单引号:把所有单独出现的单引号转义成双引号
2、限制账户的权限:不同用户账户执行查询、删除等操作不同
3、检验查询返回记录的数量
4、加强用户输入的验证,拒绝包含分号、单引号、注释号输入等
5、JAVA操作数据库使用PreparedStatement可以阻止常见的SQL注入
原因:如果使用preparedstatement的话就可以直接使用预编译,PreparedStatement不允许在插入时改变查询的逻辑结构.
6、存储过程和参数化SQL语句,最好的办法
SQL注入攻击实例:
解决办法:将单引号进行转义为双引号: select * from Users where Username='1" OR"1"="1' AND Password='1" OR "1"="1' 查询就会返回空