跳转至

Cookie missing security attributes

描述

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