3

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

4

2 回答 2

3

如果你真的想破解JSESSIONID我不推荐),你可以这样做:

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

getSession(booelan)实施中,您必须

  • 识别(并记住)您要与非键盘用户“共享”的会话(这应该首先出现)
  • 确定您想要进行“更改”时的情况(当通过某种检查确定您的非键盘用户时)
  • 当您必须“更改”时,您可以getSession()

关键时刻是:你如何识别你的非键盘用户?如果你不能安全地做到这一点(从你提供的当前信息我看不到它),这是一个安全漏洞

于 2013-01-29T10:32:19.123 回答
1

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

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

我更喜欢Client Certificate,因为这是最安全的解决方案。

于 2013-01-28T13:14:26.367 回答