使用服务器或者框架的会话管理控制。应用程序应当只识别有效的会话标识符。
会话标识符必须总是在一个可信系统(比如:服务器)上创建。
会话管理控制应当使用通过审查的算法以保证足够的随机会话标识符。
为包含已验证的会话标识符的
cookie
设置域和路径,以为站点设置一个恰当的限制值。
注销功能应当完全终止相关的会话或连接。
注销功能应当可用于所有受身份验证保护的网页。
在平衡的风险和业务功能需求的基础上,设置一个尽量短的会话超时时间。通常情况下,应
当不超过几个小时。
禁止连续的登录并强制执行周期性的会话终止,即使是活动的会话。特别是对于支持富网络
连接或连接到关键系统的应用程序。终止时机应当可以根据业务需求调整,并且用户应当收
到足够的通知已减少带来的负面影响。
如果一个会话在登录以前就建立,在成功登录以后,关闭该会话并创建一个新的会话。
在任何重新身份验证过程中建立一个新的会话标识符。
不允许同一用户
ID
的并发登录。
不要在
URL
、错误信息或日志中暴露会话标识符。会话标识符应当只出现在
HTTP cookie
头
信息中。比如,不要将会话标识符以
GET
参数进行传递。
通过在服务器上使用恰当的访问控制,保护服务器端会话数据免受来自服务器其他用户的未
授权访问。
生成一个新的会话标识符并周期性地使旧会话标识符失效(这可以缓解那些原标识符被获得
的特定会话劫持情况)。
在身份验证的时候,如果连接从
HTTP
变为
HTTPS
,则生成一个新的会话标识符。在应用程
序中,推荐持续使用
HTTPS
,而非在
HTTP
和
HTTPS
之间转换。
为服务器端的操作执行标准的会话管理,比如,通过在每个会话中使用强随机令牌或参数来
管理账户。该方法可以用来防止
跨站点请求伪造
攻击。
通过在每个请求或每个会话中使用强随机令牌或参数,为高度敏感或关键的操作提供标准的
会话管理。
为在
TLS
连接上传输的
cookie
设置
“
安全
”
属性。
将
cookie
设置为
HttpOnly
属性,除非在应用程序中明确要求了客户端脚本程序读取或者设置
cookie
的值。
推荐阅读
- 事务底层与高可用原理
- 基于 EA的 IT与业务融合
- 如何保护我们系统的安全?