Session GWT:在cookie中存储会话ID,然后呢?
我目前正在使用GWT制作一个网站,托管在AppEngine上。我用我自己的登录来实现它(我知道谷歌提供了GWT,但我需要我自己的登录系统),我一直在尝试找出会话。我找到了一些教程,其中一个我正在阅读的网站是 那里有一个关于“如何记住登录”的部分。我知道如何通过RPC调用获取会话ID并将其存储在客户机的cookie中。我不明白的是,最终在一天左右之后,用户回来了,我应该从cookie中获取会话ID并将其发送回服务器。为了安全地评估会话ID是否仍然合法,并获取有关用户的所有必要信息,我应该在服务器上做什么 其他问题: 1.什么会使会话ID发生更改? 2.如果用户在笔记本电脑上,而用户去了其他地方怎么办。他是否仍然能够安全地重新登录,而无需再次输入登录名和密码 谢谢Session GWT:在cookie中存储会话ID,然后呢?,session,gwt,gwt-rpc,Session,Gwt,Gwt Rpc,我目前正在使用GWT制作一个网站,托管在AppEngine上。我用我自己的登录来实现它(我知道谷歌提供了GWT,但我需要我自己的登录系统),我一直在尝试找出会话。我找到了一些教程,其中一个我正在阅读的网站是 那里有一个关于“如何记住登录”的部分。我知道如何通过RPC调用获取会话ID并将其存储在客户机的cookie中。我不明白的是,最终在一天左右之后,用户回来了,我应该从cookie中获取会话ID并将其发送回服务器。为了安全地评估会话ID是否仍然合法,并获取有关用户的所有必要信息,我应该在服务器上
~Scott要记住登录,您需要安全地生成一个唯一的会话id。通常,该id会放在cookie中。我建议使用一个为您提供会话cookie的框架。弄错会使你的网站容易被滥用。需要考虑的事项包括:
- 你需要担心偷饼干吗。用户的IP地址应编码在会话id中,或链接到会话id。检查每个页面访问的IP地址
- 确保您的登录在加密会话上。否则,您将在网络上以明文形式公开凭据
- 会话应持续多长时间。他们应该在一个固定的时间限制后暂停。这可能长达数小时或数天
- 记住,我应该在不同的cookie上使用不同的功能。它需要包含一些可以用来识别用户的东西。根据您的安全要求,它可能需要是加密值。此cookie的超时时间可能更长
您应该记住一件重要的事情:不要只依赖cookie—也要在请求的有效负载中传输会话ID/令牌,并将其与服务器端的cookie值进行比较。这将防止XSRF攻击。这是你应该担心的事情 如何处理会话ID的策略取决于您对应用程序安全性的重视程度以及应用程序的类型。例如,你可以使用相同的令牌从不同的IP登录到GMail上——我认为他们允许这样做,因为用户的IP在会话中改变是很常见的。不过,他们确实添加了一项功能,允许您查看用户最近登录的IP。不要忘记使用动态IP的用户(相当多)-如果您跟踪令牌和IP,基本上不允许这些用户在会话之间保持登录 我应该在服务器上做什么 为了安全地评估 会话ID仍然合法,请拔出 所有关于 用户 您应该跟踪数据库中的会话ID/登录对 什么会使会话ID发生更改 它将过期,或者用户尝试使用未绑定到其IP的令牌登录。您也可以添加自己的规则-如登录次数等。为了增加安全性,您可以在每个新登录/会话上生成一个新会话ID/令牌(用户使用旧令牌进行身份验证,服务器检查该令牌是否有效,并将从现在起应使用的新令牌发回用户)