当前位置:  开发笔记 > 后端 > 正文

Web身份验证状态 - Session vs Cookie?

如何解决《Web身份验证状态-SessionvsCookie?》经验,为你挑选了2个好方法。

在页面之间验证和跟踪用户身份验证状态的最佳方法是什么?有人说会话状态,有人说饼干?

我可以只使用具有用户ID的会话变量,并在身份验证时,实例化具有用户信息的自定义User类.然后,在每个页面上,验证会话变量是否仍处于活动状态并从User对象访问基本用户数据?

有什么想法吗?有什么好例子吗?



1> Todd Berman..:

对于'安全'而言,通过cookie支持会话的问题是会话使用cookie来识别用户,因此会话中存在cookie的任何问题.

使用Sessions时要记住的一件事是数据局部性.如果您计划在任何时候扩展到多个Web服务器,则需要非常小心地在会话对象中存储大量数据.

由于你使用.NET,你基本上必须编写自己的会话存储提供程序来处理这个问题,因为InProc不会扩展到1个服务器,数据库提供程序完全是一个坏主意(重点是避免数据库读取这里虽然扩展,但没有添加更多),而StateServer有很多容量问题.(过去,我使用了一个memcached会话存储提供程序来成功解决这个问题).

我会谷歌签署cookie并考虑使用它而不是常规cookie或会话.它解决了许多安全问题,并消除了会话的局部性问题.请记住,它们会在每次请求时来回传递,因此请谨慎存储数据.


@esteban无Cookie会话将会话ID放在URL中.我把它留给你想象一下,这是否比使用cookie更多/更少/同样不安全.

2> Joel Coehoor..:

没有完美的方法来做到这一点.如果你把它存放在一个cookie中,你就会发现cookie被盗了.如果你将它存储在会话中,你将会被剥夺,因为会话可能被劫持.

就个人而言,我倾向于认为会话更可靠,因为客户端上存储的唯一内容是会话密钥.实际数据仍保留在服务器上.如果你愿意的话,它会更接近胸部.然而,这只是我的偏好,一个优秀的黑客无论如何都能够摆脱劣质安全.

无论你做什么,都不要试图自己实现.你会弄错的.使用您的特定平台提供的身份验证系统.您还需要确保有足够的安全预防措施来保护身份验证令牌.


这没有意义,因为你通过窃取cookie来劫持会话.所以无论怎样都是同样的问题.
推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有