关于java程序SQL注入的解析以及解决方法

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语句去注入就无法成功了。
未完待续!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值