1.什么是SQL注入?
指的是web应用程序对用户输入数据的合法性没有判断或者过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作。
2.导致SQL注入的根本原因。
用户输入的信息中含有sql语句的关键字,并且这些关键字参与sql语句的编译过程。
导致sql语句的原意被扭曲,进而达到sql注入。
3.如何解决SQL注入问题?
1.要求用户提供的信息不参与sql语句的编译过程,问题就可以解决。
2.用户提供的信息中含有SQL语句的关键字,但是没有参与编译。
3.要想用户信息不参与SQL语句的编译,那么必须使用:
java.sql.PreparedStatement
PreparedStatemeent接口继承java.sql.Statement
PreparedStatement是属于预编译的数据库操作对象。
PreparedStatement的原理是:预先对SQL语句的框架进行编译,再给SQL语句传“值”。