mysql注入的一个例子:
传说咋子某个业务中,有人想输个这样的 #--)的表情,单击报存后触发数据库更新。由于该业务未对危险字符串“ #--)”做处理,进行转义,导致where后面的信息都被注释了,执行的sql语句变成了
update table set memo="" #--( where user_id=123456;
momo字段都被更新
怎么预防sql注入呢?
1.过滤用户输入参数的特殊字符,从而降低sql注入的风险
2.禁止通过自字符串拼接的sql语句,严格使用参数绑定传入sql参数
3.合理使用数据库访问框架提供的放注入机制。比如mybatis提供的#{}绑定参数,从而防止sql注入,同时谨慎的使用${},他相当于使用字符串拼接sql。