如何使用 Apache 配置设置 SameSite cookie 属性?

Abh*_*bbu 4 apache http-headers samesite

我无法在“应用程序”选项卡中使用内置开发人员工具看到 SameSite=Strict。

我在 Apache 配置中添加了下面的标题代码

Header always edit Set-Cookie (.*) "$1;SameSite=Strict"
Header edit Set-Cookie ^(.*)$ $1;SameSite=Strict
Run Code Online (Sandbox Code Playgroud)

请让我知道如何使用上述设置设置 SameSite=Strict。

小智 18

对于 apache2 >= 2.2.4

Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure;SameSite=Strict
Run Code Online (Sandbox Code Playgroud)

对于低于 2.2.4 的 apache2

Header set Set-Cookie HttpOnly;Secure;SameSite=Strict
Run Code Online (Sandbox Code Playgroud)

  • 第二个示例设置一个没有 cookie 名称或 cookie 值的 cookie。 (2认同)

Asu*_*sui 5

在我的本地环境 (Apache 2.4) 中启用 mod_headers 后,我能够通过在我的 vhost 中添加如下指令来实现这一点:

<ifmodule mod_headers.c>
Header always edit Set-Cookie (.*) "$1; SameSite=strict"
</ifmodule> 
Run Code Online (Sandbox Code Playgroud)

区别在哪里?为什么它对你不起作用?也许它在分号后缺少“空格”?

<ifmodule mod_headers.c>
# always is similar to "onerrors"
        Header always edit Set-Cookie (.*) "$1; SameSite=strict"
# success is similar to http 2xx response code
        Header onsuccess edit Set-Cookie (.*) "$1; SameSite=strict"
# remove duplications (apache sends from both tables always and onsuccess)
        ## https://www.tunetheweb.com/security/http-security-headers/secure-cookies/
        #Strip off double SameSite=strict settings as using above you can sometimes get both
        Header edit Set-Cookie ^(.*);\s?SameSite=strict;?\s?(.*);\s?SameSite=strict;?\s?(.*)$ "$1; $2; $3; SameSite=strict"

        #Strip off double ;; settings
        Header edit Set-Cookie ^(.*);\s?;\s?(.*)$ "$1; $2"

</ifmodule>
Run Code Online (Sandbox Code Playgroud)

[apache 手册] ( https://httpd.apache.org/docs/2.2/de/mod/mod_headers.html )

[堆栈讨论](httpd 重复 Access-Control-Allow-Origin with "Header always set"

  • 我遇到一个问题,“标头始终编辑”不起作用,但“标头成功编辑”却起作用。[mod_headers 文档](https://httpd.apache.org/docs/current/mod/mod_headers.html#header) 解释了原因 - `always` 和 `onsuccess` 只是两个不同的表和您的标头正在寻找的可能是其中之一(或两者) (4认同)