Spring Security

  • 前言
  • Spring Security过滤器链
  • 账号风险
  • 如何避免呢?

前言

记住我功能方便是大家看得见的,但是安全性却令人担忧。因为Cookie毕竟是保存在客户端的,很容易盗取,而且cookie的值还与用户名、密码这些敏感数据相关,虽然加密了,但是将敏感信息存在客户端,还是不太安全。
那么这就要提醒喜欢使用此功能的,用完网站要及时手动退出登录,清空认证信息。

Spring Security过滤器链

使用过Spring Security的小伙伴应该都不陌生,总之很爽,其余的不解释。其中一个过滤器RememberMeAuthenticationFilter默认是不开启的!那么有一个需求用户要求登录必须使用记住我功能,大家可能会想,那不简单,我们开启Spring Security的记住我功能不就完事了。

说明:RememberMeAuthenticationFilter中功能非常简单,会在打开浏览器时,自动判断是否认证,如果没有则调用autoLogin进行自动认证。

账号风险

回到正题,我们就来说一下Spring Security记住我功能是如何潜在的账号盗取风险的,至于如何配置Spring Security我就不说了,网上一堆教程,照着粘贴复制就完事了。

第一步:首先在火狐浏览器下登录

然后输入账号密码,勾选记住我功能

登录成功后,生成token.

此时我们把token的key和value粘贴复制出来,打开谷歌浏览器,输入同一个域名:http://localhost:8080/

remember-me  YWRtaW46MTU5NDk2MDgwNjYwNDo4NjBhOGYwMzlkYjIyZjJhMmY4YzNmN2MxODkxZjBhMQ


此时此刻当我们成功植入token后,不用输入账号密码,将地址改为后台首页:http://localhost:8080/ 直接刷新浏览器,就成功进入后台了。

如何避免呢?

说简单了,也就是持久化我们的remember me中token信息,在客户端的cookie中,仅保存一个无意义的加密串(与用户名、密码等敏感数据无关),然后在db中保存该加密串-用户信息的对应关系,自动登录时,用cookie中的加密串,到db中验证,如果通过,自动登录才算通过。

Spring Security记住我功能之潜在的账号盗取风险相关推荐

  1. Spring Security 记住我功能原理以及实现

    用户名登陆的案例 实现"记住我" 功能 在用户登陆一次以后,系统会记住用户一段时间,在这段时间,用户不用反复登陆就可以使用我们的系统. 记住我功能的基本原理 用户发送请求到User ...

  2. [转载]spring security 的 logout 功能

    原文地址:spring security 的 logout 功能作者:sumnny 转载自:http://lengyun3566.iteye.com/blog/1114464 理解退出功能 术语退出( ...

  3. Spring Security实现RememberMe功能以及原理探究

    在大多数网站中,都会实现RememberMe这个功能,方便用户在下一次登录时直接登录,避免再次输入用户名以及密码去登录,下面,主要讲解如何使用Spring Security实现记住我这个功能以及深入源 ...

  4. 【Spring Security】基本功能介绍

    文章目录 1.spring security 简介 spring security 基本原理 2 入门项目 2.1 web工程配置 2.1 加入Spring Security 3. 参数详解 3.1. ...

  5. spring security 的 logout 功能

    转载自:http://lengyun3566.iteye.com/blog/1114464 理解退出功能 术语退出(Logout)指的是用户使其安全session失效的一种操作.一般来说,用户在退出后 ...

  6. 【深入浅出Spring原理及实战】「技术原理」Spring Security的核心功能和加载运行流程的原理分析

    SpringSecurity的架构总览 Spring Security的简介说明 Spring Security对认证.授权和常见漏洞保护提供了全方位支持.使用的版本为:Spring Security ...

  7. Spring Security源码分析七:Spring Security 记住我

    有这样一个场景--有个用户初访并登录了你的网站,然而第二天他又来了,却必须再次登录.于是就有了"记住我"这样的功能来方便用户使用,然而有一件不言自明的事情,那就是这种认证状态的&q ...

  8. Spring Security实现登录权限控制,记住我等功能

    文章目录 1.Spring Security简介 2.登录权限控制 2.1.基本功能 2.2.登录和未登录导航栏显示 2.3.根据权限显示不同页面功能 3.定制登录页和记住我功能 3.1.定制登录页 ...

  9. 【Spring Security】005-Spring Security web权限方案(3):用户注销、自动登录、CSRF功能

    目录 一.用户注销 1.用户注销实现步骤 第一步:在配置类MySecurityConfig中添加退用户注销代码 第二步:添加success.html作为登录成功页,里面添加退出链接 第三步:在配置类M ...

最新文章

  1. 常用电脑密码破解技巧
  2. 警惕由于使用YYYY-MM-dd引发的一场生产问题
  3. SQL编程where子句与操作符
  4. Spring MVC 中 HandlerInterceptorAdapter的使用
  5. 【学习笔记】单例模式(枚举、校验锁、volatile、反射破坏)
  6. java 多列 统计_java – 如何计算多列(colspan)HTML表的宽度?
  7. 整理最全的Java笔试题库之问答题篇-国企笔试题库
  8. 黑客之门(hacker's door) 1.2 版
  9. 《Using OpenRefine》翻译~8
  10. 爬取美女图片信息并保存(无图系列)
  11. 百度大脑OCR助力泰康保险医疗理赔实现智能化
  12. fedora30解决Rhythmbox MP3中文歌曲歌名乱码
  13. Muse UI遇到的坑
  14. 复习2个月拿下美团offer,我都做了些啥
  15. python代码时钟_时钟 - python代码库 - 云代码
  16. openswan协商流程之(四):main_inI2_outR2()
  17. php取json子对象属性,怎么取json对象的属性和值?
  18. 给微软免费的文本转语音网站添加下载按钮
  19. Hauppague 哈帕克 PCIe 视频采集卡 ImpactVCB-e花屏问题解决和SDK集成
  20. AD 元件3D封装设置

热门文章

  1. xml 属性value换行显示_跟光磊学Java开发-Java解析XML
  2. 信息学奥赛一本通(1123:图像相似度)
  3. 信息学奥赛一本通(2045:【例5.13】蛇形填数)
  4. 分组背包(信息学奥赛一本通-T1272)
  5. 分数线划定(洛谷-P1068)
  6. 单词的长度(信息学奥赛一本通-T1142)
  7. 信息学奥赛C++语言: 队伍调整
  8. 信息学奥赛C++语言:摘李子
  9. saiku连mysql 使用_saiku应用的调试
  10. OpenCV辅助对象(help objects)(1)_TermCriteria