Java 使用Tomcat和Apache的CRSF令牌和会话复制

Java 使用Tomcat和Apache的CRSF令牌和会话复制,java,session,tomcat,replication,Java,Session,Tomcat,Replication,我有一个与J2EE兼容的web应用程序。我使用基于会话的令牌向应用程序生成的所有传入链接追加一个辅助id。为了防止我的应用程序受到CSRF攻击,我在允许用户会话退出后续页面之前验证了次要id 最近,在使用会话复制机制实现时,我发现在会话故障切换时,生成的secodary id丢失,用户被重新定向到登录页/默认页 关于如何确保生成的辅助令牌id不会从复制会话中丢失的任何建议?表示令牌的对象应实现java.io.Serializable,以便在磁盘文件系统上通过网络以二进制流的形式存储/读取/传输会

我有一个与J2EE兼容的web应用程序。我使用基于会话的令牌向应用程序生成的所有传入链接追加一个辅助id。为了防止我的应用程序受到CSRF攻击,我在允许用户会话退出后续页面之前验证了次要id

最近,在使用会话复制机制实现时,我发现在会话故障切换时,生成的secodary id丢失,用户被重新定向到登录页/默认页


关于如何确保生成的辅助令牌id不会从复制会话中丢失的任何建议?

表示令牌的对象应实现java.io.Serializable,以便在磁盘文件系统上通过网络以二进制流的形式存储/读取/传输会话时继续存在,会话复制和故障切换机制中可能出现的情况

这通常已经在有关机制的文件中明确提到。我建议您再次阅读,以确保您涵盖了使复制/故障切换完美运行的所有内容

以下是本章中关于该主题的摘录:

要在服务器中运行会话复制,请执行以下操作: Tomcat 6.0容器,如下所示 应完成以下步骤:

所有会话属性都必须实现java.io.Serializable ...
表示令牌的对象应实现java.io.Serializable,以便在会话复制和故障切换机制中发生的会话作为二进制流通过网络、磁盘文件系统等进行存储/读取/传输时继续存在

这通常已经在有关机制的文件中明确提到。我建议您再次阅读,以确保您涵盖了使复制/故障切换完美运行的所有内容

以下是本章中关于该主题的摘录:

要在服务器中运行会话复制,请执行以下操作: Tomcat 6.0容器,如下所示 应完成以下步骤:

所有会话属性都必须实现java.io.Serializable ...
一个简单的辅助令牌只能针对CSRF攻击提供有限的保护。对于我们自己的框架,我们决定通过在URI上生成一个自定义哈希代码来对每个URL进行签名,然后在URI上添加会话存储的secret,该secret可以在使用SHA-256进行消化之前立即序列化。
这样,在将秘密添加到URI时,它就不会被公开。整个过程很容易通过注释@RequireToken来控制,一个简单的辅助令牌只能提供有限的保护来抵御CSRF攻击。对于我们自己的框架,我们决定通过在URI上生成一个自定义哈希代码来对每个URL进行签名,然后在URI上添加会话存储的secret,该secret可以在使用SHA-256进行消化之前立即序列化。 这样,在将秘密添加到URI时,它就不会被公开。整个过程很容易由注释@RequireToken控制