单点登录Cas如何保证客户端的安全性
目录
- 同花顺
- 已经有TGC了,为什么还需要ST
- Cas如何保证客户端的安全性
- Cookie的安全性
同花顺
在一篇博客下边,我看到了这样一句话(如下图):
这个使用redis就能实现吧,把用户的信息放在redis里面,当用户访问其他系统时直接从redis里面获取是否有该用户信息,有则放行,没有则跳转到登录页面。
随后我就毫不留情的开喷,你咋不说放到随便一个tomcat中也可以实现呢,确实也可以啊。只要是个服务器都能用于存放用户信息。
Cas解决的是存放用户信息的问题吗,还真是。(尬.jpg)
Cas占据了SSO领域的半壁江山。洋洋洒洒几W行代码绝对不是一个存储用户信息的服务器容器可以比拟的。
一个Cas下有很多个客户端,一旦用户信息被暴露,那么所有的客户端权限全部开放,就是一个很危险的事情。
Cas对客户端与服务端交互时的信息安全花了很大的功夫,设计出了一套ticket机制,有以下几种票据:
TGC 、 ST 、 TGT、PGT 、 PGTIOU 、 PT 、AS、TGS、KDC。
一看就很安全。
安全这方面,不可以较真,因为防不胜防。阿里云还能被攻克呢,所以说酒精是你道高一尺,还是我魔高一丈。
我们正常的开发,能防住普通的小毛贼就可以了。
已经有TGC了,为什么还需要ST
这是一个网友的提问。
我告诉你,不止有ST,还有PGT 、 PGTIOU 、 PT 、AS、TGS、KDC。
然后,你再接着问。
为什么还要有PT啊,有TGC和ST还不行吗?
为什么还要有TGS啊,有TGC和ST还不行吗?
所以说,没有为什么。
网上有这样两种解释:
第二种字多,所以第二种有理。
Cas如何保证客户端的安全性
我们正常的项目,普通的登录逻辑,使用的就是cookie与session组合。按理说,Cas项目使用一个cookie确实也足够了,但是Cas增加了Ticket的概念。
原因如下:
1、TGC与ST组合是一种双重保护,毕竟是单点登录一整个大家庭,很多个客户端,安全上必须重视。
TGC是一直存在客户端的,可以通过JS脚本来获取。
但是ST没有存在客户端,也没有存在服务端,你没有办法截取,除非你已经深入服务器内部,了解各个请求跳转环节,那你也没必要伪造ST了。
Cas对ST做了非常大的限制,它的默认生存时间为10秒,可以调的更低一点,因为请求重定向转发速度非常快,3s都绰绰有余。
2、ST规则:ST-1-7I7963LWBGk1jcUCfbls-xiaolaoben
有没有见过同样的ST,它是一个不规则的字符串,只能被一个客户端使用一次,使用过后就失效,时间到期也会失效。
TGT生成的ST,他们两个是父子关系,由TGT校验ST是不是亲生的。
TGT的默认生存时间为两个小时,不同的TGT生成的ST的规则不同。
就算你摸清了这个ST的规则,过了一会换了TGT,你伪造的ST,新的TGT不认识,校验不通过。
3、Map结构:<TGC,TGT>,<ST,TGT>。
访问cas-server时,判断一下cas-server中是否存在名为CONST_CAS_ASSERTION与TGC匹配的session,如果存在进行下一个过滤器。
校验时,TGT判断一下该ST是不是亲生的。Cas的登录逻辑就是TGC与ST配合,二者缺一不可。
Cookie的安全性
非法用户使用cookie
1、盗取cookie里你的用户信息。
2、模拟你的cookie,进入你的系统,拥有你的全部权限。
保护cookie的有效措施
1、cookie有效期设置不要太长。
2、设置HttpOnly属性为true,防止js脚本读取cookie信息,有效的防止XSS攻击。
3、加密Cookie,key与value采用自定义规则。
4、使用HTTPS加密协议,SSL协议传输,稳得一批。
Cas单点登录推荐你使用HTTPS协议,就是为了安全。
·······················································································
全部都是我瞎扯的,以上。
单点登录Cas如何保证客户端的安全性相关推荐
- 01单点登录CAS 5.3.4搭建及使用
01单点登录CAS 5.3.4搭建及使用 参考网址1 参照网址2 参照网址3 此文档代码GitHub地址 一.CAS介绍 单点登录Single Sign on (SSO), CAS ( Central ...
- Cas单点登录的服务器端和客户端的配置
同事参考网上资料总结出的Cas单点登录的文档,很有学习价值哦 Cas服务器端和客户端的配置 服务器端的配置: 1. 所需的环境: · Tomcat7.2 · JDK6 · CAS Service 版本 ...
- 单点登录 cas 设置回调地址_cas客户端流程详解(源码解析)单点登录
博主之前一直使用了cas客户端进行用户的单点登录操作,决定进行源码分析来看cas的整个流程,以便以后出现了问题还不知道是什么原因导致的 cas主要的形式就是通过过滤器的形式来实现的,来,贴上示例配置: ...
- 单点登录cas综述之cas4.2.7服务端+cas客户端+示例程序+环境搭建说明-陈杰
1环境搭建以及把示例程序跑起来 1.1 安装jdk1.8 1.2 下载tomcat8+cas4.2.7服务端war+cas客户端war 1.2.1下载经过配置的Tomcat8和本教程配套文件 1.2 ...
- 单点登录-CAS介绍
什么是 CAS CAS(Central Authentication Service)是耶鲁大学的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方案.采用 CAS 最大的因素是从安全 ...
- 分析单点登录cas的解决方式
1. CAS 简介 1.1. What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨 ...
- SSO单点登录教程(四)自己动手写SSO单点登录服务端和客户端
作者:蓝雄威,叩丁狼教育高级讲师.原创文章,转载请注明出处. 一.前言 我们自己动手写单点登录的服务端目的是为了加深对单点登录的理解.如果你们公司想实现单点登录/单点注销功能,推荐使用开源的单点登录框 ...
- 单点登录 cas 设置回调地址_单点登录落地实现技术有哪些,有哪些流行的登录方案搭配?...
实现单点登录说到底就是要解决如何产生和存储那个信任,再就是其他系统如何验证这个信任的有效 性,因此要点也就以下两个:1.存储信任 :2.服务器生产~验证信任 : 3.拿到服务器再次验证. 单点登录的常 ...
- 单点登录CAS学习(一):初识单点登录
一.单点登录应用场景 不少业主单位随着自身的发展,建立不少业务支撑系统,往往会采用不同的开发商进行系统开发和建设,因此必然形成如下一种局面:工作人员需要登录多个业务系统才能将自己的工作全部完成,给工作 ...
- springmvc--sso单点登录cas统一身份认证器
开发环境 maven idea Windows 10 JDK 1.8+ 域名解析的配置 这里通过SwitchHosts来实现:以管理员身份打开 前两个:两个客户端应用的域名 后一个:是服务端的域名. ...
最新文章
- ASP.NET MVC 4 中的JSON数据交互总结
- 视频|每日CeBIT:IBM九大展区各显神通,传统工业与工业4.0的博弈
- js中的hasOwnProperty和isPrototypeOf方法
- linux bash command not found
- 一生只为两件事,他的名字曾是中国高级机密!
- Spotlight on unix 安装
- antd-vue中的form表单label标签for导致点击文字触发输入框解决方案
- 终于解决 k8s 集群中部署 nodelocaldns 的问题
- python可迭代对象和迭代器的理解
- 串口转usb驱动c语言程序,电脑中USB转串口如何正确安装对应的驱动程序
- kafka面试题整理
- ATM自动取款机系统的功能需求分析
- SQL学习笔记(01)_LIKE、IN、通配符
- 如何下载Figma(肥姑妈)
- python基础学习-斐波那契数列实现
- (实测可用)STM32CubeMX教程-STM32L431RCT6开发板研究串口通信(printf)
- idea的output窗口丢失问题
- mark glossiness==1.0
- 李宏毅 深度学习【持续更新】
- istat menus 序列号