HTTP Cookie的替代品?

时间:2010-07-20 05:44:49

标签: cookies

他们说Cookies是bad。我个人认为应该有一种“更聪明”的方式来检测Web应用程序上的用户状态。

说,目前这是它在分布式环境中的工作原理,其中xyz.com有许多池和服务器(我知道):

  1. 用户登录xyz.com
  2. xyz.com的登录模块会在客户端的本地计算机上删除cookie。
  3. 现在,当客户端访问xyz.com的Feature1时,feature1池会检查本地cookie,如果找到它并且它没有过期,则Feature1会认为客户端是好的并允许他进入。
  4. 因此,由于登录模块丢弃了cookie,feature1盲目信任客户端。

    但是我觉得在第3阶段存在一个根本性的缺陷。如果黑客克隆cookie并尝试做某事怎么办? (这是黑客试图做的第一个显而易见的事情,cookie嗅探)

    那么,有什么替代方案吗? - 网络存储,闪存存储对象将来如何做?或饼干将统治?

    没有寻找明显的答案,因为没有。我对接近这个探索的不同观点感兴趣。

    由于

3 个答案:

答案 0 :(得分:6)

我相信this resource from google和/或this link中的信息可以帮助您找到在客户端保存信息的替代方法。

基本上......在不使用cookie的情况下,有4种不同的方法可以在客户端存储数据:

  1. Web SQL(我最喜欢的,it's NOT obsolete
  2. IndexedDB(另一个具有不同结构和接受度的数据库)
  3. Web Storage(会话和本地键/值对)
  4. Application Cache(适用于WebApps的文件)​​
  5. 我相信,根据您的特定需求,Web Storage Local对是正确的解决方案。

答案 1 :(得分:2)

REST的一个基本原则,我的意思是real REST不是在服务器上存储状态,如果服务器上没有状态,那么就不需要cookie了被用作看起来状态的关键。

答案 2 :(得分:0)

您需要使用cookie prefixes的安全cookie。 Cookie前缀__Secure- *和___ Host- *确保您的Cookie仅由安全连接设置并通过安全连接发送,从而防止Cookie嗅探和中间人攻击。

为了提高安全性,您可以强制用户仅从特定IP地址的白名单登录。