SQL注入的解析:
这里是链接地址:http://blog.csdn.net/stilling2006/article/details/8526458 ,里面写了SQL注入的原理。我主要是对于SQL的防范方法做具体介绍。
可以先了解一下SQL注入,对SQL注入有一定了解了在开始去防范。
首先为什么会出现SQL注入。SQL注入产生的原因,和栈溢出、XSS等很多其他的攻击方法类似,就是未经检查或者未经充分检查的用户输入数据,意外变成了代码被执行。针对于SQL注入,则是用户提交的数据,被数据库系统编译而产生了开发者预期之外的动作。也就是,SQL注入是用户输入的数据,在拼接SQL语句的过程中,超越了数据本身,成为了SQL语句查询逻辑的一部分,然后这样被拼接出来的SQL语句被数据库执行,产生了开发者预期之外的动作。
下面知识一个示范例子,当我写的用户登录时这样的sql拼接语句能直接跳过数据库登入进去。
原理:实际上的SQL语句就成为了SELECT * FROM `user` where user = ""or 1 = 1-- AND `password` = 123456
--后面的是注释部分,意味着随便输什么密码都可以。
下面是我使用SQL拼接语句实现用户登录方法的代码
SQL注入的解决方法:
第一种:通过过PreparedStatement 的预编译来防范大部分的SQL注入攻击。
上图是我下的一个得到newsfeed表的内容的方法。这时候你在用示例的SELECT * FROM `user` where user = ""or 1 = 1-- AND `password` = 123456 SQL语句去注入就无法成功了。
未完待续!!