美文网首页
sql注入与sql预处理

sql注入与sql预处理

作者: 凉风拂面秋挽月 | 来源:发表于2020-03-28 15:18 被阅读0次

sql注入

什么是SQL注入

sql注入是指用户通过传递一些非法参数导致sql语句未按预想效果执行,从而导致用户能操纵不对用户开放的数据库,从而获得隐私信息。
这种情况一般是由于sql语句做字符串拼接参数执行的。

Connection conn=null;
//createStatement会导致sql注入,因为它采用拼接sql语句的方式获得参数
Statement createStatement=null;
        try {
            //加载驱动类
            Class.forName("com.mysql.jdbc.Driver");     conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc", "root", "112358"); 
        createStatement = conn.createStatement();               
            String id="5 or 1=1";
            //拼接会引起sql语句出错,sql注入
            String sql="delete from t_user where id="+id;
            createStatement.execute(sql);//执行sql语句
        } catch (ClassNotFoundException e) {            
            e.printStackTrace();
        }

该条sql语句由于后面加入了1=1,导致整个数据库数据的删除。

具体场景

image.png
image.png

sql注入就是本来我只有我能操作数据库,本来只是让你输入内容就走,而你却输入命令,从而在我不知情下操作数据库。

sql预处理

createStatement会导致sql注入,而prepareStatement使用带占位符的sql语句,可以避免sql注入。

 String sql="insert into t_user(username,pwd,regTime) values(?,?,?)";
 PreparedStatement ps = conn.prepareStatement(sql);//预编译
ps.setString(2, "123456",new Date());

这样采取预编译的方式,输入的参数被当成字符串参数而不是当成一个sql语句,如果输入的是1=1,也只会不执行,因为数据库查不到一个id为1=1的数据。

相关文章

  • BUUCTF-Web-随便注(三种解题思路)

    知识点:SQL注入-堆叠注入,sql预处理语句,巧用contact()函数绕过 堆叠注入原理: 在SQL中,分号(...

  • 6.mysql安全性

    SQL语句应该考虑哪些安全性? Sql查询的安全方案【就是考察sql注入】 1.使用预处理语句,防Sql注入 【p...

  • sql注入与sql预处理

    sql注入 什么是SQL注入 sql注入是指用户通过传递一些非法参数导致sql语句未按预想效果执行,从而导致用户能...

  • 学习笔记 face

    1.使用预处理语句防 sql注入 sql注入 id = "1 or 1=1"; 2.写入数据库的数据要进行特殊字符...

  • 妇女节总结

    1. PreparedStatement PreparedStatement预处理语句对象,可以避免SQL注入...

  • PHP面试题总结

    一.cookie与session的区别 二.php如何防止SQL注入 使用预处理语句和参数化查询。预处理语句和参数...

  • web常见漏洞的成因和修复

    1.SQL注入 漏洞描述:SQL 注入攻击( SQL Injection ),简称注入攻击、SQL 注入,主要用于...

  • JDBC02

    1.PreparedStatement 预处理语句对象 是Statement的子接口 * 避免SQL注入...

  • 谈谈sql注入之原理和防护(-)

    谈谈sql注入(二)谈谈sql注入(三)谈谈sql注入(四)所谓SQL注入,就是通过把SQL命令插入到Web表单提...

  • 笔记:web漏洞

    SQL注入 SQL注入攻击(SQL Injection),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,...

网友评论

      本文标题:sql注入与sql预处理

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