1

我正在尝试在我的应用程序日志中记录一个唯一标识符,该标识符将清楚地跟踪 Spring MVC 应用程序中用户的每次访问。目的是将此标识符存储在 cookie 中,并 grep 查找与该标识符匹配的日志。当 QA 或客户支持遇到应用程序问题时,他们将提供来自 cookie 的标识符的值,应用程序开发团队可以使用它来搜索和排除故障。

我不想使用 JSESSIONID,因为它可能被劫持。我目前正在记录时间戳和用户 ID,但是当用户可以同时从多个浏览器登录时,这无济于事。

Spring 是否提供任何功能来支持这一点?如果没有,有没有办法仍然使用 JSESSIONID 但防止会话劫持?

4

1 回答 1

2

获取会话 ID (jsessionid) 并使用 SHA-1 或类似方法对其进行哈希处理。从理论上讲,哈希是不可逆的,但在输入是唯一的情况下是唯一的。

我们使用 aServletFilter将此值存储在 MDC (slf4j/log4j) 中,然后允许我们在日志模式中使用该值。示例:http: //veerasundar.com/blog/2009/11/log4j-mdc-mapped-diagnostic-context-example-code/

于 2013-02-11T23:04:11.803 回答