Apache:incap_ses_* cookie 是安全的但不是 HttpOnly,而 visid_incap_* 有两个标志

问题描述

我有一个托管 wordpress 网页的 Apache 服务器。我修改了我的 mod_headers 以将 SecureHttpOnly 标志设置为所有 cookie。 我的配置如下:

<IfModule mod_headers.c>
    Header set X-XSS-Protection "1; mode=block"
    Header always append x-frame-options SAMEORIGIN
    Header set X-Content-Type-Options nosniff
    Header set Referrer-Policy "no-referrer-when-downgrade"
    Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
</IfModule>

出于某种原因,incap_ses cookie 仅与 Secure 标志一起出现,而 visid_incap 具有 SecureHttpOnly 标志。

该特定 cookie (incap_ses) 没有与 HttpOnly 标志一起出现是否有原因?

解决方法

这里有一些方法可以解决这个问题。
always 前尝试 editalways edit
还要确保在任何使用 always 的行之前列出一行使用 edit
Header always edit Set-Cookie (.*) "$1;HttpOnly;Secure"

但最佳做法是在 PHP 文件中处理此问题。然后将类似这样的内容添加到 .htaccess

Header set Set-Cookie HttpOnly;Secure
# END WordPress
# BEGIN HttpHeaders
php_flag session.cookie_httponly on
php_flag session.cookie_secure on
# END HttpHeadersCookie