Cookie missing security attributes
Cookie 缺少安全属性
描述
Secure Cookie:仅通过 HTTPS 协议随加密请求发送至服务器。缺少 Secure 标志的 Cookie 可能会通过未加密的通道发送。此标志的存在不应成为存储敏感数据的理由,因为 Cookie 仍然是不安全的存储位置。
HttpOnly Cookie:有助于缓解跨站脚本(XSS)漏洞,JavaScript 无法使用 document.cookie API 访问 HttpOnly Cookie。
```http request Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly
#### 建议
向 Cookie 添加缺少的安全属性。添加标志取决于所使用的框架,可以是全局设置,也可以通过向请求手动添加标志来完成。
对于由 PHP 管理的会话 Cookie,标志在 `php.ini` 中设置:
```http request
session.cookie_secure = True
或者在代码中:
setcookie ( string $name [, string $value = "" [, int $expires = 0 [, string $path = "" [, string $domain = "" [, bool $secure = FALSE [, bool $httponly = FALSE ]]]]]] ) : bool
setcookie ( string $name [, string $value = "" [, array $options = [] ]] ) : bool
有关如何添加标志的准确详细信息,请查看您的框架文档。
链接
标准
- OWASP_ASVS_L1:
- V3_4_2
- OWASP_ASVS_L2:
- V3_4_2
- OWASP_ASVS_L3:
- V3_4_2
- PCI_STANDARDS:
- REQ_2_2
- REQ_3_6
- REQ_3_7
- REQ_6_2
- REQ_6_3
- REQ_6_4
- REQ_11_3
- HIPAA_CONTROLS:
- SECURITY252
- SECURITY212
- SECURITY213