认证与会话管理
# 认证与会话管理
认证的目的是为了认出用户是谁,而授权的目的为了决定用户能够做什么。
# 密码那些事儿
- 普通应用要求长度为6位以上;
- 重要应用要求长度为8位以上;
- 密码区分大小写字母;
- 密码为大写字母、小写字母、数字、特殊符号中两种以上组合;
- 不要使用连续性的字符;
- 尽量避免使用重复的字符
密码的保存也有一些需要注意的地方。一般来说,密码必须以不可逆的加密算法,或者单向散列函数算法,加密后存储在数据库中。将明文密码经过哈希后MD5或者sha-1再保存到数据库中,是目前业界比较普遍的做法。
# 多因素认证
除了支付密码外,手机动态口令、数字证书、宝令、支付盾、第三方证书等都可用于用户认证。
# session与认证
当用户登录完成后,在服务器端会创建一个新的会话Session,会话中会保存用户的状态和相关信息。服务器端维护在线用户的session,此时的认证,只需要知道是哪个用户在浏览当前的页面即可。
最常见的做法把sessionID加密后保存在cookie中,因为cookie会随着http请求头发送,且受到浏览器同源策略的保护
# session fixation攻击
sessionid 登录时没有重写时导致。
# session保持攻击
如果攻击者能一直持有一个有效的session,间隔性的刷新页面,能让session一直活下去。防御手段强制销毁session每隔一段时间。
单点登录 openid的方式 通行证方式
在Github上编辑此页 (opens new window)
上次更新: 3/22/2021, 3:47:15 AM