2010-07-20 34 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對是正確的解決方案。