Установка флага HTTPOnly для файла cookie в лаке 4

У нас есть файлы cookie, которые создаются устройством в нашей инфраструктуре, у нас нет доступа к конфигурации устройства, поэтому мы не можем установить флаг HTTPOnly для файлов cookie, которые оно создает напрямую.

Перед этим устройством у нас есть кеш лака 4, можно ли установить там флаг HTTPOnly для файла cookie? Если да, то как это можно сделать?


person thewire247    schedule 21.09.2016    source источник


Ответы (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, делающего то, что вам нужно, но его можно тривиально реализовать самостоятельно.

person Carlos Abalde    schedule 21.09.2016