问题描述
我有一个托管 wordpress 网页的 Apache 服务器。我修改了我的 mod_headers
以将 Secure
和 HttpOnly
标志设置为所有 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
具有 Secure
和 HttpOnly
标志。
该特定 cookie (incap_ses
) 没有与 HttpOnly
标志一起出现是否有原因?
解决方法
这里有一些方法可以解决这个问题。
在 always
前尝试 edit
即 always 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