SQL注入

以为是CTF的内容,没想到Java也讲了。sql注入通过输入特殊的字符,达到一些特殊目的。

执行语句

实际执行的sql语句

delete from student where id='1' or '1'='1'

等于删除了数据库的所有内容,因为 or后面的语句恒为true

如何防止SQL注入

使用PreparedStatement拼接语句

这样就可以避免注入了,在测试之前,先封装一下这个方法,使用动态变量可以添加多个数值。

主方法中添加之前的注入语句

若执行成功了任何一行,返回true

看来这样就可以避免注入了

更新了之前JDBC类中的select和update方法,使用prepareStatement方法

发表评论