我想将所有 cookie 更改为安全且仅限 http。对于一个 cookie,它工作正常,但当响应中设置了多个 cookie 时,它不起作用。
Apache mod_header 规则应该将 cookies 从:
Set-Cookie cookie1=value; Path=/somePath
Set-Cookie cookie2=value; Path=/somePath
到
Set-Cookie cookie1=value; Path=/somePath; Secure; Http-Only
Set-Cookie cookie2=value; Path=/somePath; Secure; Http-Only
我使用 mod_headers 来实现以下规则:
Header edit Set-Cookie ^(.*)$ $1;Secure;HttpOnly
当仅设置一个 cookie 时,它可以正常工作,但如果有多个 cookie,它只会删除以下所有内容,并且根本不会设置它们。
有没有关于如何为多个值编写 mod_headers 规则的帮助?或者问题出在其他方面?
答案1
我找到了答案。问题出在服务器上安装的 apache 版本上。Edit 命令从 2.2.4 版开始受支持,但版本是 2.2.3(RHEL 5+ 上的默认版本)。因此我升级了 httpd,一切正常。
有关在 RHEL 或 CentOS 上升级 httpd 的更多信息,请参阅:
http://www.jasonlitka.com/2007/01/17/upgrading-to-httpd-224-on-rhel-centos-4/
答案2
此规则适用于 apache 2.2.3
Header set Set-Cookie HttpOnly;Secure