JAVA更改JSESSIONID cookie

时间:2013-01-28 12:52:39

标签: java session wicket jsessionid

我在JBOSS 5上使用JAVA和Wicket。 我需要更改JSESSIONID cookie值以获得在另一个客户端中使用的相同Session(设置其他客户端的JSESSIONID)。我需要它来验证没有键盘的其他客户端。 什么是最好的方式?

2 个答案:

答案 0 :(得分:3)

如果确实希望破解JSESSIONID我不推荐),您可以采取以下方式:

  • 编写Servlet过滤器
  • 在该过滤器中为HttpServletRequest编写一个包装器(此类的新实例必须传递给chain.doFilter())(我们称之为RequestWrapper
  • RequestWrapper覆盖getSession(boolean)方法

getSession(booelan)实施中,您必须

  • 识别(并记住)您要与非键盘用户“分享”的会话(这应该是第一位的)
  • 确定您想要进行“更改”的情况(通过某种检查确定您的非键盘用户时)
  • 当您需要“更改”时,您可以从getSession()
  • 返回记住的会话

关键时刻是:如何识别您的非键盘用户?如果您无法安全地进行识别(根据您提供的当前信息,我看不到它),它是<强>安全漏洞。

答案 1 :(得分:1)

我建议您在应用程序中实现某种自动登录功能。有很多种可能性(客户端证书,或单点登录与其他AA提供商,甚至域cookie)。

如果您尝试使用其他应用程序登录,您的选项是 HTTP基本身份验证,客户端证书,或者只是将用户名/密码发布到您的登录页面(这个不是最安全的,虽然)。

我更喜欢客户端证书,因为这是最安全的解决方案。