SQL注入与防范

SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息

比如:

"select * from user where num= '"+ stunum + "'and password ='" + password +"';"

一般来说需要用户名、密码同时正确时,才可以获取数据。但是当用户名输入为 “ 用户名';--”时,sql语句就变成了

select * from user where num= '用户名';-- and password='密码';

此时--后面的密码当作了sql注释语句,现在可以不使用密码进行登录。

使用Java中PreparedStatement能够有效防止SQL注入

其他严格注意事件:

1.严格数据库管理权限

2.封装数据库错误,任何时间不能将数据库错误暴露给用户

3.机密信息禁止明文存储,mysql使用AES_ENCRYPT/AES_DECRYPT 加密解密。

原文地址:https://www.cnblogs.com/handsometaoa/p/14304153.html