我为REST应用程序创建了一种独立的身份验证。 以下是它的工作原理:
1 - 用户登录前端
2 - 后端验证用户和密码是否正常,然后使用会话ID将JSON对象返回给前端:
(credential.setToken(request.getSession().getId());
3 - 前端拿起令牌并将其存储在客户端上
4 - 在此过程之后,将通过对REST API发出的每个请求发送令牌
5 - 服务器API验证发送的令牌是否与该请求相同,然后对REST API的访问有效。
这很简单,现在工作正常。我现在无法找到任何安全问题。
因此,我想分享这个并提出一些问题:
1 - 此安全控制是否是保护我的REST API的安全方法?
2 - 即使入侵者知道有效的request.getSessionID(),也可以通过某种方式将其发送或通过请求更改为J2EE容器?
感谢。
答案 0 :(得分:-1)
该机制与存储在cookie中的标准会话ID没有太大区别。
我可能错了,但我想知道:鉴于此令牌未存储在cookie中并且不由浏览器管理,因此某人无法轻松访问它并将其发送给自己/她自己?
会话cookie由浏览器管理并使用标志HttpOnly服务器可以确保没有javascript代码可以访问它们。
您的身份验证似乎不如标准解决方案安全。顺便说一句......为什么你不想使用标准解决方案?