zoukankan      html  css  js  c++  java
  • SQL注入问题

     PreparedStatement:执行sql的对象
                1. SQL注入问题:在拼接sql时,有一些sql的特殊关键字参与字符串的拼接。会造成安全性问题
                    1. 输入用户随便,输入密码:a' or 'a' = 'a
                    2. sql:select * from user where username = 'fhdsjkf' and password = 'a' or 'a' = 'a' 
          这是一个恒等式,只要or一边成立就是true
                2. 解决sql注入问题:使用PreparedStatement对象来解决
                3. 预编译的SQL:参数使用?作为占位符
                4. 步骤:
                    1. 导入驱动jar包 mysql-connector-java-5.1.37-bin.jar
                    2. 注册驱动
                    3. 获取数据库连接对象 Connection
                    4. 定义sql
                        * 注意:sql的参数使用?作为占位符。 如:select * from user where username = ? and password = ?;
                    5. 获取执行sql语句的对象 PreparedStatement  Connection.prepareStatement(String sql) 
                    6. 给?赋值:
                        * 方法: setXxx(参数1,参数2)
                            * 参数1:?的位置编号 从1 开始
                            * 参数2:?的值
                    7. 执行sql,接受返回结果,不需要传递sql语句
                    8. 处理结果
                    9. 释放资源

                5. 注意:后期都会使用PreparedStatement来完成增删改查的所有操作
                    1. 可以防止SQL注入
                    2. 效率更高

  • 相关阅读:
    js查找字符串中重复的子字符串
    未知盒子宽高使盒子垂直水平居中
    标准盒模型和怪异盒模型的差异
    Vue练习(跑马灯效果)
    node后端中MVC与前端中的MVVM之间的区别
    ES6中对Promise解析
    ES6中对箭头函数的使用
    ES6对map解析
    ES6中对Set解析
    ES6解构赋值全了解
  • 原文地址:https://www.cnblogs.com/2237501874-com/p/12678762.html
Copyright © 2011-2022 走看看