Como logar um hash do cookie de sessão com o Apache HTTPD?

2

Portanto, desejo registrar uma informação equivalente a um cookie de sessão (chamado session_id ) nos logs do Apache. Eu não quero simplesmente colocar o cookie no formato de log ( %{sid}i ) porque um comprometimento do arquivo de log permitiria o seqüestro de sessão.

A ideia mais razoável, na minha opinião, seria registrar um hash do cookie de sessão.

Qual seria a melhor maneira de conseguir isso?

  • Sim, o hash pode ser definido em um segundo cookie, ao mesmo tempo que o cookie de sessão, mas depende da validação do hash em cada solicitação ou da confiança do cliente de que ele não modificará o segundo cookie - Eu preferiria que a computação hash fosse feita do lado do servidor, sem nunca ser transmitida ao cliente;

  • Sim, tenho certeza de que um módulo do Apache poderia ser escrito para, por exemplo, adicionar uma variável de ambiente em tempo real a cada solicitação, mas estou um pouco desconfiado em fazer isso, pois não tenho o conhecimento necessário ;

EDIT : Embora uma resposta que depende da funcionalidade introduzida na versão Apache 2.4 seja informativa, eu pessoalmente preciso de uma resposta que funcione no 2.2, já que eu não sou responsável pela atualização dos servidores .

    
por jhominal 12.03.2015 / 18:23

1 resposta

2

Logs canos podem ser a melhor opção para superar as limitações do CustomLog / LogFormat: "aumenta a flexibilidade de registrar, sem adicionar código ao servidor principal ".

No Apache 2.4, um novo recurso chamado ap_expr é apresentado. Permite funções dentro do contexto da string nas configurações do Apache, por exemplo

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

No entanto, não funciona no contexto CustomLog e LogFormat:

  • %{md5:foo} resulta em -
  • %{md5:%{sid}C} resulta em -}
  • %{md5:sid}C é literalmente o cookie "md5: sid" em vez de md5 ("sid")

Isso nos deixa com o Piped Logs, já que definir outro cookie contendo o checksum não era uma opção. Se fosse aceitável, ap_expr seria útil.

    
por 12.03.2015 / 19:49