会话token:表示客户端请求的有效性的一串字符串
会话标识:由服务端或者应用程序产生标识会话唯一性的一串字符串
会话cookie:服务器将一串少量的数量保存在计算机的内存上的一种技术,关闭浏览器就会被删除
持久cookie:服务器将少量数据保存在客户的计算机硬盘上的一种技术,超过有效期就会被删除
url重放:将会话标识放在url中,是会话维持的技术之一
心跳报文:服务器校验客户端会话是否存在,会话信息是否失效销毁的一种机制
认证前会话
账号是否与角色、IP、时间等绑定
系统是否支持一个用户同时建立多个会话
会话生成
防止会话劫持:
会话标识不可以在url中
会话使用统一名称,避免暴露组件无关信息
会话标识的随机性,
会话标识的长度不少于24字节或者192bit
会话标识大小写敏感
cookie的重要性:
会话标识设置httponly(防止js获取cookie)
会话标识设置secure(只有在https协议才传输会话,http请求不传输会话)
会话标识设置path
会话标识设置Domain(在本域下可以获取cookie)
会话标识SameSite(防止跨站点攻击)
CSRF_TOKEN使用安全随机数算法生成,长度不少于24字节或者192bit
限制同一用户的有效会话个数
系统是否使用web容器的会话生成机制生成会话,如果不是,测试随机数的种子是否随机且长度不少于24字节
会话维持
认证之后会话标识要更新
二次认证之后,建议会话标识更新
会话标识与会话token一起验证会话的有效性
会话标识不能记录在日志中
建议管理员可以通过界面或者命令行的形式查看当前有效会话,并且可以终止别人的会话
对会话保存的文件设置访问控制,属主和当前用户拥有读写执行权限,数组只有读,执行权限。如果是在表中保存的话,需要对表做访问控制。
会话失效
页面有明显退出会话功能,退出会话之后,服务端清除会话标识
系统设置闲时超时会话失效,