1、Session和Cookie
Session:在服务器端保持状态的一个方案。
存放在服务器上。
如果浏览器禁用掉了cookie,如何把session id传递回服务器?放到请求URL上或者隐藏在表单中。
在请求过多的情况下,服务器端存放太多session id会造成性能的影响。
Session一般用于存放登录信息等重要信息。
Cookie:在客户端保持状态的一个方案。
存放在客户的浏览器中。
如果不设置超时时间,关闭浏览器,cookie消失(该类cookie称为会话cookie,保存在内存中);
如果设置超时时间,cookie被保存在硬盘。
由于其存放在客户端,很容易被仿造,不安全。
cookie的大小是有限制的,不能超过3K。
Cookie一般用于存放有必要存储的非重要信息。
2、认识单点登录(SSO,Single Sign On)
对于各企业,会有各种各样的新老应用系统,当然了,这些系统有各自的架构、业务以及用到的数据存储系统不尽相同。老的系统丢不掉,一路用过来对吧。这么多系统混在一起,为企业带来的问题是什么呢?给人的第一感觉就是凌乱,维护起来十分不便。这里就出现了一个名称EAI(Enterprise Application Intergration,企业应用集成),其中包括业务集成、数据集中等等,当然其中还包括很重要的一个身份认证统一(SSO),SSO就是我们要认识一下的内容。
SSO就是单点登录,统一所有相关应用系统的身份认证,用户只需要登录一次就能访问相互信任的所有应用系统。
那么SSO带来的好处是什么呢?
只需登录一次带来了更好的用户体验,另外降低了安全的风险和管理的消耗。
SSO的技术实现机制是怎么样的呢?
我们可以打个比方:我们知道,对于全国各地的各个景点,我们去游玩的时候,每玩一个项目都需要购票,如果项目太多,每次买票是不是很麻烦?那么我们是不是可以只需要买一次票,就能玩遍所有的景点呢?答案是肯定的。
SSO的技术实现机制:访问多个应用系统,当我们访问其中之一,独立的认证系统进行用户信息校验,并生成唯一的标识(ticket)返回;当我们访问另外一个应用系统时候,就会带着唯一的标识ticket,由独立的认证系统去进行识别,决定是否能访问其他的应用系统。
技术实现机制图示理解如下:
如果我们要实现一个SSO,需要做的如下一些事情:
1、一个统一的身份认证系统,供所有应用系统共享;
2、所有应用系统能够识别和提取唯一标识信息ticket;
最简单的SSO可以通过Cookie来实现,认证系统生成唯一的标识ticket,在不同应用系统之间传递。不过通过Cookie实现的SSO,不管是在安全方面、功能方面还是性能方法都有很大的局限性:如cookie的安全保护、认证方式的支持、资源访问过滤的性能等等。
总结:单点登录认识很简单,要是真正实现起来,想做出一个完美的解决方案,还是有很多方面需要考虑的:安全方面、认证方式的支持方面(数字证书、SecurId等认证)等等。看来要想真正了解并掌握单点登录,还有很多工作要做的。
相关推荐
标题“flask-session-cookie-manager”指的是一个Python应用,它专门针对Flask框架,用于管理和操作session cookie。在Web开发中,session cookie是服务器用来跟踪用户状态的一种方式,特别是在无状态的HTTP协议上...
综上所述,“flask-session-cookie-manager-master”是一个针对Flask的session管理工具,重点关注session的安全加密和解密,旨在提高Web应用在CTF竞赛或实际开发中的安全性。通过研究和使用这个工具,我们可以深入...
tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-...
标题中的“PyPI 官网下载 | flask-session-cookie-manager-1.2.1.tar.gz”表明这是一个在Python Package Index(PyPI)上发布的开源软件包,名为“flask-session-cookie-manager”,版本为1.2.1,其源代码以tar.gz...
【标题】"tomcat-redis-session-manager包集合下载(tomcat8)"涉及的主要知识点是将Redis集成到Tomcat中管理会话(session),以提高Web应用的性能和可扩展性。 【描述】中提到的"所需的tomcat-redis-session-...
如果有sessionId,就去redis中查看是否有此id的记录,如果没有就新建session,如果有,还是新建session,并把redis中此session的相关数据赋值给新建的session,最后保存sessionId到cookie,cookie的maxAge设置为-1,...
### JAVA通过Session和Cookie实现网站自动登录 在现代Web应用开发中,用户认证与授权是极为重要的环节之一。为了提供良好的用户体验,很多网站都提供了自动登录功能,即用户首次登录后,在一定时间内再次访问该网站...
JAVA 通过 Session 和 Cookie 实现网站自动登录的技术 在网站开发中,实现自动登录功能是非常重要的,JAVA 通过 Session 和 Cookie 实现网站自动登录的技术是其中的一种方法。本文将详细介绍如何使用 Session 和 ...
1. **tomcat8**:这是Apache Tomcat的第八个主要版本,是一个开源的Java Servlet容器,它实现了Java EE的Web应用程序部署规范。Tomcat8支持Servlet 3.1、JSP 2.3和EL 3.0等标准。 2. **redis**:Redis是一种内存...
通过上述介绍,我们可以看到Cookie和Session在Java Web开发中发挥着重要作用。它们不仅能够提高用户体验,还能帮助开发者更好地管理用户的会话状态。理解并熟练掌握这两项技术对于任何Web开发者来说都是至关重要的。
用于配置 tomcat-redis-session-manager
在处理用户登录和会话管理时,`session`和`cookie`是两个核心概念。本文将深入探讨`Flask`中的`session`和`cookie`,以及如何对它们进行解密。 首先,`session`和`cookie`都是用于跟踪用户状态的方法。`cookie`通常...
# pacman -S flask-session-cookie-manager{3,2} 吉特 ArchLinux 两者python3 etn python2: $ git clone https://github.com/noraj/flask-session-cookie-manager.git && cd flask-session-cookie-manager # ...
### JAVA之cookie与session #### 一、Cookie与Session的概念 **Cookie** 与 **Session** 是两种在 Web 开发中用于跟踪用户会话的重要技术。它们的主要目标是在客户端和服务端之间保持状态。 - **Cookie** 机制...
案例一、记录用户的上次访问时间---cookie 案例二、实现验证码的校验----session。 1.服务器端向客户端发送一个Cookie 1)创建Cookie: Cookie cookie = new Cookie(String cookieName,String cookieValue); 示例:...
依照文档部署即可实现多服务器多tomcat session共享,jar包中是tomcat7集成所需要的jar包,序列化工具用的是java默认的序列化工具,若要使用其他版本的tomcat或其他的序列化工具,更具文档自己替换jar包即可,附赠...
综上所述,"X-uni-session:单点登录session服务端"是一个基于Java构建的SSO解决方案,它利用Java的Web技术,如Servlet、Filter和session管理,以及可能的Token机制,实现用户在多个应用之间的无缝登录。同时,考虑到...
- 在Java Web应用中,可以使用`HttpServletResponse`对象的`addCookie()`方法来添加Cookie,并将其包含在HTTP响应头的`Set-Cookie`字段中。 4. **Cookie的获取**: - 可以通过`HttpServletRequest`对象的`get...