我在 JBOSS 5 上使用 JAVA 和 Wicket。我需要更改 JSESSIONID cookie 值以获取在另一个客户端中使用的相同 Session(设置另一个客户端的 JSESSIONID)。我需要它来验证另一个没有键盘的客户端)。什么是最好的方法?
问问题
7120 次
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 回答