• 【Java】系统漏洞:关于用户登录后操作的注意事项


    项目背景:

    SpringMVC + Mybatis  + MySql数据库(javaWeb项目开发)

    相关模块:登录,个人详细信息修改,订单详情查询

    相关漏洞介绍

      1.登录的验证码:登录的验证码一定要在后台做验证,如果只是前台验证验证码后,后台未验证,可能会发生第一次验证验证码后,通过工具绕过验证码进行暴力破解;

      2.拦截器:要对登录后的如个人信息操作的接口名称要使用/user或者/admin进行拦截,如用户未登录,将自动跳转至登录页面;

      3.个人详细信息修改:用户的信息要存放在session里面,如用户的id,这样进行个人信息修改的时候,如果是免密接口(即修改信息不需要密码),修改账号信息的时候,一定不要直接传用户的id来做唯一的标识,使用用户的关键性信息的时候,可以从session获取当前登录用户的信息,防止如账户为3000001的用户登录后修改账户3000002的用户的个人信息;

      4.订单详情接口:如果是查询用户的订单详情,只通过订单id进行查询的话,即使接口名加了/user,拦截了未登录的用户,也有可能发生其他用户登录后可以查询到非本人订单的详情信息。对于此种情况,一定要在查询订单详情前,验证此订单是当前登录用户的个人订单,即验证session中的id与此订单的创建人的id一致;防止信息的泄露;

    (备注:以上漏洞真实发生过,发出来希望其他新人引以为戒,也希望能和更多的人一起交流开发中遇到的问题)

  • 相关阅读:
    黑马程序员_网络编程
    黑马程序员_ 异常
    黑马程序员_面向对象基础
    黑马程序员_循环语句的使用
    黑马程序员_面向对象深入2
    黑马程序员_ JAVA中的多线程
    黑马程序员_JAVA基础知识总结3
    OC-内存管理
    OC-核心语法(3)(分类、SEL、类本质)
    OC-核心语法2-构造方法
  • 原文地址:https://www.cnblogs.com/jianyixjdm/p/java_login_bug_01.html
Copyright © 2020-2023  润新知