0

我们的基础设施中有设备生成的 cookie,我们无权访问设备的配置,因此无法在它直接生成的 cookie 上设置 HTTPOnly 标志。

我们在这个设备前面确实有一个清漆 4 缓存,是否可以在 cookie 上设置 HTTPOnly 标志?如果是这样,怎么办?

4

1 回答 1

1

如果您的后端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 可以满足您的需要,但您可以自己轻松实现它。

于 2016-09-21T17:49:04.610 回答