如何最好地认证和跟踪用户身份验证状态,有些人说使用会话状态,有些人说使用cookie?
我是否可以只使用一个会话变量来存储用户ID,在认证后实例化一个自定义的User类,其中包含用户信息。然后,在每个页面上,验证会话变量是否仍处于活动状态,并从User对象访问基本用户数据?
有什么想法?有任何好的示例吗?
如何最好地认证和跟踪用户身份验证状态,有些人说使用会话状态,有些人说使用cookie?
我是否可以只使用一个会话变量来存储用户ID,在认证后实例化一个自定义的User类,其中包含用户信息。然后,在每个页面上,验证会话变量是否仍处于活动状态,并从User对象访问基本用户数据?
有什么想法?有任何好的示例吗?
没有一种完美的方法。如果将其存储在Cookie中,您可能会受到Cookie被盗的批评。如果将其存储在会话中,您可能会受到会话劫持的批评。
个人而言,我倾向于认为会话更加可靠,因为客户端上仅存储会话密钥,而实际数据则保存在服务器上。如果这样说可以的话,它会稍微保密一些。但是,这只是我的偏好,一个优秀的黑客仍然能够绕过不良安全性。
无论您做什么,都不要尝试自己实现它。您会搞错的。请使用您特定平台提供的身份验证系统。您还需要确保有足够的安全预防措施来保护身份验证令牌。
我不知道这是否是最好的方法,但我们对我们的方法感到满意。
我们有一个自定义用户对象,在用户进行身份验证时实例化该对象,然后使用Session在整个应用程序中维护此对象。
在某些应用程序中,我们将其与使用Cookie结合使用以持续扩展会话。
Cookies和Sessions本身并不足够。它们是用来跟踪用户及其行为的工具,但您真正需要考虑使用数据库来持久化有关用户的信息,还可以用于保护应用程序。
会话是Cookies...