MySQL数据库的SQL注入与JUnit的使用

今天我们来玩点好玩的

相信很多小伙伴学都有一个梦想

成为一个顶尖的黑客

今天我们就满足一下虚荣心

SQL注入

首先我们先来用 JDBC 写一个登录的验证~还是按照先前的步骤~我们走起

640?wx_fmt=jpeg


完成了登录的查询验证逻辑,现在我们来模拟一下登录操作~,(我们主要讲的是数据库的内容,所以没有写前端的页面),假设下面的“lisi”和“444”就是我们从前端页面获取到的用户输入的用户名和密码~


先看一下,我们的用户表中只有两条数据~

640?wx_fmt=png


运行了一下代码

640?wx_fmt=png

登陆成功~


好~下面我们就要搞事情了~,仔细看一下我输入的用户名和密码~

640?wx_fmt=png


我们的数据库中根本就不存在一个用户名为“wangwu”,密码为“1”的这样一个信息~但是我们通过了数据库的登录信息验证,成功的登录进了系统~~怎么样是不是很6~


这就是 SQL 注入,在输入数据的地方输入 SQl 片段,然后在后台,和我们预先写好的 SQL 语句,拼接成新的 SQL 语句,通过这个 SQL 语句我们通过了数据库的验证~

那么如何解决这个问题:

那就是使用 PreparedStatement,PreparedStatement 叫做预编译声明,是 Statement 的子接口,我们可以使用PreparedStatement 来代替 Statement 。


PreparedStatement的好处:

1)防止 SQL 攻击。

2)提高代码的可读性,以及可维护性。

3)提高效率。


下面来给大家演示一下~只有圈起来的地方不一样~剩下的内容是不变的~

640?wx_fmt=jpeg


现在我们再来测试一下SQL注入,就没有效果了。

640?wx_fmt=png

攻击自己的系统也算是一种成就吧!

为了防止自己被攻击

你知道该怎么做了吧~


今天除了说 SQL 的注入还要给大家介绍一个工具 JUnit~

Junit 单元测试

JUnit是一个 Java 语言的单元测试框架。属于第三方工具,一般情况下需要导入 jar 包,不过现在大部分的 Java开发环境已经集成了 JUnit 作为单元测试工具。


我们可以简单的理解为这是用来取代 java 的 main 方法的~使用方法也很简单直接在测试方法上添加注解 @Test 就好,下面我们来演示一下~


建议方法名以 test 开头,用鼠标点击@Test,使用快捷键“Ctrl+1”,点击“Add JUnit ...”添加成功后项目目录就像图中标出的那样

640?wx_fmt=png


注意运行的时候要选择“JUnit Test”

640?wx_fmt=jpeg


这就是测试成功的样子哦~

640?wx_fmt=png


常用的注解除了 @Test 还有 @Before @After 它们的含义如下:

@Before 测试方法前执行的方法

@After 测试方法后执行的方法 

640?wx_fmt=png

以后就使用这个方法来测试代码吧~


那么今天就到这里了

拜拜了


640?wx_fmt=jpeg

我是萌新娜娜

立志做一个不翻车的老司机

学习Java的路上请多多指教


扩展阅读

SQL注入的一些技巧分享

轻松了解Spring中的控制反转和依赖注入

MySQL到底有多少种日志类型需要我们记住的!


来源:Java联盟

文章来源网络,版权归作者本人所有,如侵犯到原作者权益,请与我们联系删除

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值