我正在开发一个企业应用程序,我需要在REST请求中传递会话ID,这将在我的EJB方法中传递相同的ID。
我采取的方法是:
任何人都可以告诉我,如果这是正确的方法吗?
此外,生成单向散列以创建会话令牌而不是发送自动生成的主键吗?
答案 0 :(得分:0)
传递令牌作为标头参数以识别登录用户是一种常见方法。实际上使用OAuth基本上是相同的想法,但添加了这样做的标准方法,并增加了到期/撤销令牌的可能性。
关于生成单向哈希,是的。这是要走的路。自动生成的主键将是一个糟糕的主意。如果我登录并且我被分配了会话1427,我几乎可以100%确定现在有一个1426会话可供不同的用户使用。巨大的安全漏洞。
确保您尽可能难以猜测这些令牌,并在整个过程中使用https,否则您将向登录人员展示您的登录令牌。
答案 1 :(得分:0)
是。不要使用自动生成的主键。如果您使用多个应用层并且不想使用JSESSIONID
,请使用SecureRandom生成会话令牌并使用它。