OWASP 应用程序安全验证标准 4.0.3
控制项模式应用安全验证标准是一份应用安全需求或测试清单,可供架构师、开发人员、测试人员、安全专家、工具供应商和用户用来定义、构建、测试和验证安全应用程序。
确保应用程序绝不在 URL 参数中泄露会话令牌。
验证应用在用户身份验证时是否生成新的会话令牌。(C6)
验证会话令牌是否至少具有 64 位熵。(C6)
验证应用程序仅使用安全方法在浏览器中存储会话令牌,例如适当安全的 Cookie(见第 3.4 节)或 HTML5 会话存储。
验证会话令牌是否使用批准的加密算法生成。(C6)
验证注销和会话过期是否使会话令牌失效,以确保浏览器的后退按钮或下游依赖方不会恢复已认证的会话,包括跨依赖方的情况。(C6)
如果身份验证器允许用户保持登录状态,请验证在用户主动使用或闲置一段时间后,是否会定期进行重新认证。(C6)
验证应用程序在密码成功更改后(包括通过密码重置/恢复更改时)是否提供终止所有其他活动会话的选项,并确保该选项在整个应用程序、联合登录(如果存在)以及任何依赖方中都有效。
验证用户是否能够查看并(在重新输入登录凭据后)注销任何或所有当前活跃的会话和设备。
验证基于 Cookie 的会话令牌是否设置了“Secure”属性。(C6)
验证基于 Cookie 的会话令牌是否设置了 'HttpOnly' 属性。(C6)
验证基于 Cookie 的会话令牌是否使用 “SameSite” 属性来限制跨站请求伪造攻击的风险。 (C6)
验证基于 Cookie 的会话令牌是否使用 "__Host-" 前缀,以便 Cookie 仅发送到最初设置该 Cookie 的主机。
确认如果应用程序是在与其他应用程序共享的域名下发布,而这些应用程序设置或使用可能泄露会话Cookie的Cookie,则应在基于Cookie的会话令牌中使用尽可能精确的路径设置路径属性。(C6)
验证应用程序是否允许用户撤销与关联应用程序建立信任关系的 OAuth 令牌。
验证应用程序使用会话令牌而非静态 API 密钥和密匙,除非是旧版本实现。
验证无状态会话令牌是否使用数字签名、加密以及其他对策来防护篡改、封装、重放、空密码和密钥替换攻击。
验证依赖方(RPs)是否向凭证服务提供商(CSPs)指定了最长认证时间,以及如果 CSP 在该时间段内未使用会话,是否会重新认证用户。
验证凭证服务提供商(CSP)是否向依赖方(RP)告知上一次的身份验证事件,以便依赖方确定是否需要重新对用户进行身份验证。
验证应用程序是否确保完整、有效的登录会话,或在允许任何敏感交易或账户修改之前要求重新认证或二次验证。