跳到主要内容

18--会话管理之防御固定会话攻击

前言

在前面几个章节中,一一哥 带各位学习了如何实现基于数据库进行认证授权,如何给登录界面添加图形验证码,如何进行自动登录和注销登录,那么Spring Security的功能难道只有这些吗?肯定不是的,它的宝藏还有很多,我们还需要继续往下学习研究。

今天 壹哥 就带各位学习另一个很重要的功能,就是会话管理!

你可能会问:会话管理?干嘛的?有哪些效果?我们想一下:

> 我们的项目上线后,如果黑客对我们的项目进行会话固定攻击怎么办? > > 如果用户登录后,长时间不进行任何操作,要不要让用户重新登录? > > 如果你的登录账号,在多台设备上同时登录该怎么实现和处理? > > ......

这些问题会话管理都可以替我们解决!所以会话管理是不是很重要?别激动,接下来跟着 壹哥 一点点往下学吧!

一. 会话的概念

在实现会话管理之前,我们还是先来了解一下协议和会话的概念,连协议和会话都不知道是啥,咋个管理嘛。

1. http协议

因为我们现在的会话,基本上都是基于HTTP协议的,所以在讲解会话之前,我再带各位复习一下HTTP协议。

1.1 概念

HTTP: 超文本传输协议(HyperText Transfer Protocol)****,是一种用于分布式、协作式和超媒体信息系统的应用层协议,是一种在客户端(用户)和服务器端(网站)之间进行请求和响应的规范标准(TCP),HTTP是万维网中数据通信的基础。

1.2 起源&发展

HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的RFC。其中最著名的是1999年6月公布的 RFC 2616,定义了HTTP协议中现今广泛使用的一个版本——HTTP 1.1

2014年12月,互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis(httpbis)工作小组将HTTP/2标准提议递交至IESG进行讨论,于2015年2月17日被批准。HTTP/2标准于2015年5月以RFC 7540正式发表,取代HTTP 1.1成为HTTP的实现标准。