我们的基础设施中有设备生成的 cookie,我们无权访问设备的配置,因此无法在它直接生成的 cookie 上设置 HTTPOnly 标志。
我们在这个设备前面确实有一个清漆 4 缓存,是否可以在 cookie 上设置 HTTPOnly 标志?如果是这样,怎么办?
我们的基础设施中有设备生成的 cookie,我们无权访问设备的配置,因此无法在它直接生成的 cookie 上设置 HTTPOnly 标志。
我们在这个设备前面确实有一个清漆 4 缓存,是否可以在 cookie 上设置 HTTPOnly 标志?如果是这样,怎么办?
如果您的后端Set-Cookie
为每个响应仅设置一个标头,HttpOnly
则可以在vcl_deliver
子例程期间轻松地将标志添加到该标头。您只需要resp.http.Set-Cookie
使用regsub()
.
但是,如果Set-Cookie
单个响应中可能存在多个标头,则先前的解决方案无效。您可以考虑一种类似的方法,首先使用 将所有Set-Cookie
标头合并到一个以逗号分隔的Set-Cookie
标头中std.collect()
,然后使用 重写合并的标头regsuball()
以添加HttpOnly
标志。但是,合并Set-Cookie
标头是一个坏主意。一些浏览器不喜欢合并的标头,而是更喜欢Set-Cookie
单独发送每个标头。
摘要:当单个响应中可能有多个标头时,您无法在 VCL 中添加HttpOnly
标志。Set-Cookie
这只能使用 VMOD来实现。我不知道有任何 VMOD 可以满足您的需要,但您可以自己轻松实现它。