何为SQL注入?

2019-03-31  本文已影响0人  旦暮何枯

SQL注入

通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

SQL 注入实例:

登录请求

情境 登录名 密码
正常 zhangsan 123456
SQL 注入 zhangsan';-- 123

正常查询语句为:

select * from user where userName = 'zhangsan' and passwoad = '123456'

注入后:

select * from user where userName = 'zhangsan';-- ' and passwoad = '123456'

因为后面添加的单引号和分号断开了查询的后续条件,并通过 "-- " 进行了注释,使原sql 语句语义发生了改变。

解决办法

通过 connect 下的 preparedStatement 方法来预编译 sql,后续加入参数;因为 sql 语句进行了预编译,保障了参数传入后,整条语句的语义不会发生变化,从而防范了 SQL 注入的问题。

『项目地址』: https://github.com/wengfe/JAVA/tree/master/HelloJDBC/src
上一篇下一篇

猜你喜欢

热点阅读