使用 http headers 传递日志数据

Using http headers for passing data for logging

我正在开发一个与 ASP.Net Web API 通信的 windows 应用程序。我需要为自动记录重要信息的 Web API 实施动态日志记录策略(使用 log4net)。 我正在考虑为此使用 http headers 。 例如,我可以为我的 header 使用前缀 "X-Log-"。 Web 上的记录器 API 会自动选择它并记录所有具有该前缀的 header。

但是,我对上述内容有很多疑问。

  1. 这是标准做法还是 anti-pattern?
  2. 如果将敏感数据放在 header 中(假设使用 ssl),是否会带来任何安全风险?
  3. 是否可以将防火墙配置为阻止具有特定 header 的请求?

我觉得你的问题可以用"it depends"来回答。

这是标准做法吗?我从未见过它完成,但这并不意味着如果以简洁明了的方式实现它就不好。它确实将您的 front-end 与 API 联系起来,这可能是一个潜在的危险信号。有一个专门用于日志记录的 API 端点可能会更好。

任何安全风险都取决于您(和您的用户)将哪些信息视为敏感信息以及该信息是否在其他地方可用。如果它已经在屏幕上可用,那么只要您通过 HTTPS,我就不会太担心它。如果它不是屏幕上的东西,那么你需要多考虑一下。

而且,是的,防火墙可以阻止那些 headers 的传入请求。

希望对您有所帮助。