一。先用JDBC做账号登陆
方法一:用createStatement方法做账号登陆
测试结果:当输入正确账号密码时:当输入错误账号密码时:
当用注入攻击输入账号密码时:
注入攻击的原理是 输入任意值' or 1=1 # 用'来将
中原有的字符串拼接代替,变成username='"+任意值' or 1=1 # +"' and password='"+mm+"' ;其中username的值变成"+任意值 由原来的账号密码同时满足,变成现在的账号满足"+任意值 或者 1=1 ,由于1=1是恒等式 所以会正确,而#是mysql中的注释,所以#之后所有的内容会全部被忽略。
防止注入攻击的方法有两种;一种是将输入账号中的' 替换成" 如下:
然后试验输入注入攻击验证是否能够成功:
二。用prepareStatement方法做账号登陆 -- 这种方法就是防注入攻击的第二种方法
验证如下:输入正确账号密码时:
输入错误账号密码时:
输入注入攻击时:
二。用prepareStatement方法来注册一个账号
输入要注册的信息:
在输入一条注入攻击的信息:
注册的结果:
结果表明用prepareStatement方法来做注册和登陆时比较安全的方法。