• 用JDBC做账号注册登陆


    一。先用JDBC做账号登陆

    方法一:用createStatement方法做账号登陆

    测试结果:当输入正确账号密码时:当输入错误账号密码时:

    当用注入攻击输入账号密码时:

    注入攻击的原理是 输入任意值' or 1=1 #    用'来将

    中原有的字符串拼接代替,变成username='"+任意值' or 1=1 # +"' and password='"+mm+"' ;其中username的值变成"+任意值  由原来的账号密码同时满足,变成现在的账号满足"+任意值 或者 1=1 ,由于1=1是恒等式 所以会正确,而#是mysql中的注释,所以#之后所有的内容会全部被忽略。

    防止注入攻击的方法有两种;一种是将输入账号中的' 替换成"  如下:

    然后试验输入注入攻击验证是否能够成功:

    二。用prepareStatement方法做账号登陆 -- 这种方法就是防注入攻击的第二种方法

    验证如下:输入正确账号密码时:

    输入错误账号密码时:

    输入注入攻击时:

    二。用prepareStatement方法来注册一个账号

    输入要注册的信息:

    在输入一条注入攻击的信息:

    注册的结果:

    结果表明用prepareStatement方法来做注册和登陆时比较安全的方法。

  • 相关阅读:
    HTML <input> 标签
    HTML5 <input> type 属性
    静态页面与动态页面
    string::size_type 页73 size_t 页90
    template method(模板方法)
    C++中创建对象的时候加括号和不加括号的区别(转)
    _declspec(dllexport)和.def(转)
    智能指针
    C++中的delete加深认识
    工厂方法(整理自李建忠<C++设计模式>视频)
  • 原文地址:https://www.cnblogs.com/dnf1612/p/6249280.html
Copyright © 2020-2023  润新知