1

SpringMVCアプリケーションでのユーザーのすべての訪問を明確に追跡する一意の識別子をアプリケーションログに記録しようとしています。目的は、この識別子をCookieに保存し、識別子に一致するログのgrepを実行することです。QAまたはカスタマーサポートがアプリで問題が発生した場合、Cookieから識別子の値を提供し、アプリケーション開発チームが検索とトラブルシューティングに使用できます。

JSESSIONIDは乗っ取られる可能性があるため、使用したくありません。現在、タイムスタンプとユーザーIDをログに記録していますが、ユーザーが複数のブラウザーから同時にログインできる場合は役に立ちません。

Springはこれをサポートする機能を提供していますか?そうでない場合でも、JSESSIONIDを使用して、セッションハイジャックを防止する方法はありますか?

4

1 に答える 1

2

セッションID(jsessionid)を取得し、SHA-1などを使用してハッシュします。理論上、ハッシュは元に戻せませんが、入力が一意である場合は一意です。

ServletFilterこの値をMDC(slf4j / log4j)に格納するを使用します。これにより、ログパターンでその値を使用できるようになります。例: http: //veerasundar.com/blog/2009/11/log4j-mdc-mapped-diagnostic-context-example-code/

于 2013-02-11T23:04:11.803 に答える