gpt4 book ai didi

apache - 如何将 Apache 配置为不记录某些 cookie?

转载 作者:行者123 更新时间:2023-12-05 06:46:41 26 4
gpt4 key购买 nike

我将 Apache 作为代理运行,我想将 cookie 字符串记录为通过代理发出的请求的一部分,但我想排除某些 cookie,因为它们包含敏感信息。

我知道 Apache mod_log_config 允许记录整个 cookie 字符串:

  %{Cookie}i

我可以记录一个特定的 cookie:

  %{Foobar}C

但我想记录所有内容,除了某些 cookie(如果它们存在)。我尝试过的一种可能的策略是将 SetEnvIf 与 %{FOO}e 结合使用,它会打印一个环境变量,例如:

  SetEnvIf = Cookie "(.*?)(Foobar=([^\s;]*;? ?))?(.*)" FILTERED_COOKIES=$1$4

  %{FILTERED_COOKIES}e

如果 Foobar 存在于 cookie 字符串中,这很有效,但如果 Foobar 不存在,如果只记录一个“-”,那么我不会得到所有其他 cookie。

有可能我的正则表达式很差,但它似乎在匹配情况下有效,但 Apache 似乎在非匹配情况下处理不当。

如果不编写自定义 Apache mod,是否有办法排除 cookie 被记录?

最佳答案

实现此目的的一种方法是使用多种日志格式。在您的主配置文件中:

SetEnvIf Cookie "(.*?)(Foobar=([^\s;]*;? ?))?(.*)" FILTERED_COOKIES=$1$4
LogFormat "%h %l %u %t \"%r\" %>s %b %{Cookie}i" common
LogFormat "%h %l %u %t \"%r\" %>s %b %{FILTERED_COOKIES}e" filtered

然后在您的 VirtualHost 中,添加如下内容:

CustomLog logs/access_log filtered env=FILTERED_COOKIES
CustomLog logs/access_log common env=!FILTERED_COOKIES

关于apache - 如何将 Apache 配置为不记录某些 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13883190/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com