GWT:在cookie中存储会话ID,然后是什么?

Sco*_*ott 7 session gwt gwt-rpc

我目前正在使用GWT创建一个站点,在AppEngine上托管.我正在制作我正在制作的自己的登录信息(我知道谷歌提供了一些GWT,但我需要自己的登录系统),而且我一直试图找出会议已经有一段时间了.我找到了一些教程,其中一个我正在阅读的网站是http://code.google.com/p/google-web-toolkit-incubator/wiki/LoginSecurityFAQ

那里有一节"如何记住登录".我知道如何通过RPC调用获取会话ID并将其存储在cookie中的客户端上.我不明白的是,最终在一天左右后,用户回来了,我应该从cookie中获取会话ID并将其发送回服务器.为了安全地评估会话ID是否合法,我应该在服务器上做什么,并提取有关用户的所有必要信息?

其他问题:1.什么会使会话ID发生变化?2.如果用户在笔记本电脑上,并且用户去了其他地方,该怎么办?他是否仍然可以安全地重新登录,而无需再次输入他的登录名和密码?

谢谢!

〜斯科特

Igo*_*mer 8

类似的问题:关于GWT,Cookies和网页指导的问题.
您应该记住的一件重要事情:不要单独依赖cookie - 在请求的有效负载中传输会话ID /令牌,并将其与服务器端的cookie值进行比较.这将阻止XSRF攻击.那是你应该担心的事情.

有关如何处理会话ID的策略取决于您在应用程序中采取安全措施的程度以及它的应用程序类型.例如,您可以使用来自不同IP的GMail上的相同令牌登录 - 我认为他们允许这样做,因为用户的IP通过会话进行更改是很常见的.但是,他们添加了一项功能,允许您查看用户最近登录的IP.并且不要忘记具有动态IP(相当大的数量)的用户 - 如果您跟踪令牌和IP,您将基本上禁止这些用户在会话之间保持登录状态.

为了安全地评估会话ID是否合法,我应该在服务器上做什么,并提取有关用户的所有必要信息?

您应该跟踪数据库中的会话ID /登录对.

什么会使会话ID发生变化?

它过期或用户尝试使用未绑定到其IP的令牌登录.您也可以添加自己的规则 - 例如登录次数等.为了提高安全性,您可以在每个新登录/会话上生成新的会话ID /令牌(用户使用旧令牌进行身份验证,服务器会检查它是否有效并向用户发回他/她从现在开始应该使用的新令牌.


Bil*_*hor 1

要记住登录信息,您需要安全地生成唯一的会话 ID。通常,它被放置在 cookie 中。我建议使用一个为您处理会话 cookie 的框架。出错可能会让您的网站很容易被滥用。需要考虑的事项包括:

  • 您需要担心 cookie 被盗吗?用户的 IP 地址应编码在会话 id 中,或链接到会话 id。检查每个页面访问的IP地址。
  • 确保您的登录是在加密会话上。否则,您将在网络上以明文形式公开凭据。
  • 会议应该持续多长时间。他们应该在固定时间限制后超时。这可能长达数小时或数天。
  • 请记住,不同的 cookie 应该有不同的功能。它需要包含可用于识别用户的内容。根据您的安全要求,它可能需要是加密值。这个cookie可以有更长的超时时间。

您的其他问题的答案是。

  1. 客户端上的任何内容都不可能更改会话 ID。每次登录时都应重新生成会话 ID。
  2. 根据会话 ID 的安全程度,他们可能必须登录。安全会话 cookie 通常会对 IP 地址进行编码,以防止 cookie 被窃取。如果是这样,笔记本电脑用户将需要再次登录。