在varnish 4中的cookie上设置HTTPOnly标志

时间:2016-09-21 10:07:17

标签: varnish varnish-vcl varnish-4

我们的基础架构中的设备生成了Cookie,我们无法访问设备的配置,因此无法在其直接生成的Cookie上设置HTTPOnly标记。

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

1 个答案:

答案 0 :(得分: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标头。

摘要:如果在单个响应中有多个HttpOnly标头,则无法在VCL中添加Set-Cookie标志。这只能实施using a VMOD。我不知道任何VMOD正在做你需要的东西,但它可以自己实现。