黑客sql注入的原理及解决sql注入问题及优点

一.sql注入的原理

        使用preparedStatement解决Statement的sql注入问题的原理

PreparedStatement pst = conn.preparedStatement(sql); 被称为预编译sql语句,是指在使用Connection对象创建数据库连接对象时,直接将不完整的sql语句(缺少查询条件的sql语句)直接进行编译,后期在从键盘输入时,输入的数据不会被编译,输入会制备被当作字符串,就算从键盘输入的数据存在 AND OR 等关系,虚拟机也不会再此对其进行编译

Statement st = conn.Statement(); st.execute(sql); 会先创建数据库连接对象st,st会将不完整的sql语句和从键盘输入的数据一起编译,输入的文本中的逻辑关系AND OR等关系也会参与编译,就会导致sql注入的问题。

二.PreparedStatement的优点

        1.解决sql注入问题

        2.可以才做图片视频等Blob流数据

        3.可以实现更高效的批量操作

                statement在执行sql语句时,会将插入的数据和sql一起编译,当数据量有10000000条时,sql会被编译执行10000000次,费时且占资源

                PreparedStatement在插如10000000条数据时,sql语句只会预编译一次,而后的每一条数据的插入都不会在编译sql语句,省时间省资源。

        


猜你喜欢

转载自blog.csdn.net/qq_52655865/article/details/123954651
今日推荐