Как зарегистрировать хеш сеансовых куки с Apache HTTPD?

Так, я хочу зарегистрировать информацию, которая эквивалентна сеансовым куки (названный session_id) в журналах Apache. Я не хочу просто помещать cookie в формат журнала (%{sid}i) потому что компромисс файла журнала позволил бы перехват сеанса.

Самая разумная идея, по-моему, состояла бы в том, чтобы зарегистрировать хеш сеансовых куки.

Каков был бы лучший способ достигнуть этого?

  • Да, хеш мог быть установлен во втором cookie, в то же время, что и сеансовые куки, однако который полагается или на проверку хеша по каждому запросу или на доверие клиенту, что это не изменит второй cookie - я предпочел бы, чтобы вычисление хеша было сделанной серверной стороной, никогда не будучи переданным клиенту;

  • Да, я вполне уверен, модуль Apache мог быть записан в, например, добавьте переменную среды на лету по каждому запросу, но я немного опасаюсь делать это, поскольку я испытываю недостаток в необходимых экспертных знаниях;

Править: В то время как ответ, который полагается на функциональность, представленную в версии Apache 2.4, будет информативен, мне лично нужен ответ, который будет работать над 2,2, поскольку я не отвечаю за обновление серверов.

2
задан 13 March 2015 в 11:03
1 ответ

Переданные журналы могут быть лучшим вариантом для преодоления ограничений CustomLog / LogFormat: он «увеличивает гибкость ведения журнала без добавления кода на главный сервер».

В Apache 2.4 введена новая функция ap_expr . Он позволяет использовать функции в строковом контексте в конфигурациях Apache, например

# Function example in string context
Header set foo-checksum "expr=%{md5:foo}"

. Однако он не работает в контексте CustomLog и LogFormat:

  • % {md5: foo} приводит к -
  • % {md5:% {sid} C} приводит к -}
  • % {md5: sid} C буквально является файлом cookie "md5: sid" вместо md5 ( "sid")

Это оставляет нас с конвейерными журналами, поскольку установка другого файла cookie, содержащего контрольную сумму, не была вариантом. Если бы это было приемлемо, было бы полезно использовать ap_expr.

2
ответ дан 3 December 2019 в 11:38

Теги

Похожие вопросы