美文网首页
何为SQL注入?

何为SQL注入?

作者: 旦暮何枯 | 来源:发表于2019-03-31 23:07 被阅读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

    相关文章

      网友评论

          本文标题:何为SQL注入?

          本文链接:https://www.haomeiwen.com/subject/omppbqtx.html