如何使用Apache HTTPDlogging会话cookie的散列?

所以,我想在Apache日志中logging相当于会话cookie(称为session_id )的信息。 我不想简单地把cookie放在日志格式( %{sid}i )中,因为日志文件的破坏会导致会话劫持。

在我看来,最合理的想法是logging会话cookie的散列。

什么是最好的方式来实现呢?

编辑 :虽然依赖于版本的Apache 2.4中引入的function的答案将是翔实的,我个人需要一个答案,将在2.2上工作,因为我不负责服务器的升级。

pipe道日志可能是克服CustomLog / LogFormat限制的最佳select:它“增加了日志logging的灵活性,而无需向主服务器添加代码”。

在Apache 2.4中引入了一个名为ap_expr的新function。 它允许在Apacheconfiguration中的string上下文中的函数,例如

 # 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”)

这留下了pipe道日志,因为设置另一个包含校验和的cookie不是一个选项。 如果可以接受的话,ap_expr会有帮助。