2010-07-20 48 views
8

他们说饼干是bad。我个人认为应该有一种“更智能”的方式来检测用户在网络应用上的状态。替代HTTP Cookie?

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

  • 登录模块

    1. 用户登录xyz.com在客户端的本地机器上放置一个cookie。
    2. 现在,当客户端转到xyz.com的Feature1时,feature1池检查本地cookie,如果他发现它并且没有过期,则Feature1假定客户端很好并让他进入。

    因此,feature1由于登录模块丢弃cookie而盲目地信任客户端。

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

    那么,有没有其他办法呢? - 网络存储,未来的闪存存储对象将如何实现?或cookies会统治?

    不寻找一个明显的答案,因为没有。我对处理这个问题的不同观点感兴趣。

    感谢

  • +0

    我投票结束这个问题作为题外话,因为它明确要求讨论和意见。 *不寻找明显的答案,因为没有。我对接近这个问题的不同观点感兴趣。* – 2015-08-26 22:10:28

    +0

    我不同意关闭这个问题,这是一个现在不断发展,可行和最佳解决方案来来去去的问题。 – davidtaubmann 2016-02-06 22:22:53

    回答

    3

    一个REST基本原理的,我的意思是real REST是不是存储在服务器上的状态,如果在服务器上没有状态,那么就没有必要对一个cookie使用作为看待这个状态的关键。

    +1

    您能否详细说明一下,如何在上述场景中工作? – zengr 2010-07-20 06:24:01

    +1

    你不需要cookies来跟踪服务器上的状态,没有任何状态,你可以在每次请求时将客户端的状态传递给服务器,阅读REST链接,这很容易理解 – 2010-07-20 16:25:43

    +3

    @ makerofthings7你传递了凭据在每一个请求中,这是国家的一部分,如果你认为你需要cookies来保证安全,你不理解**无状态**意味着什么或者安全认证。像SSL这样的端到端加密可以保证安全,而不是cookies。 – 2012-03-11 22:54:33

    4

    我相信this resource from google和/或this link中的信息将帮助您找到保存客户端信息的备选方案。

    ...基本上有4种不同的方法来存储在客户端的数据,而无需使用cookie:

    1. Web SQL(我最喜欢的,和it's NOT obsolete
    2. IndexedDB(另一个具有不同的结构和验收数据库)
    3. Web Storage(会话和本地键/值对)
    4. Application Cache(文件为的WebApp)

    我相信,对于您的特定需求,Web Storage Local对是正确的解决方案。