2010-09-26 232 views
1

如何處理在不能使用會話時保持用戶登錄或更新購物車的操作?將userId或cartId添加到隱藏的輸入字段感覺就像是一個安全漏洞「禁用所有Cookie」設置並登錄用戶/購物車的最佳做法

+0

我想知道爲什麼你不能使用會話...或者你的意思是沒有cookie的會話? – Archimedix 2010-09-26 14:38:57

+0

是的,我認爲當你選擇「禁用所有的cookies」時,不應該禁用會話,但是......發生。 – Nat 2010-09-26 15:00:02

回答

1

爲每個表單添加一個類似會話的ID(以及表單之外的每個普通鏈接也是如此,如果您希望能夠通過瀏覽保持狀態)確實是您在不能使用cookie時傳統上完成的方式。

實現參數會話(帶有難看的/page.php?session=459gj0tv789yn風格的鏈接)是一件非常痛苦的事情,它會打破緩存並且用戶無法複製和粘貼鏈接以防意外分享會話。由於這些原因,大多數網站不再打擾,只需要cookie。

您可以做的另一件事是使用HTTP基本身份驗證來允許用戶登錄帳戶並將所有會話信息存儲在帳戶上。這對於購物車來說不太方便,因爲您必須要求用戶在將任何東西放入購物車之前先登錄,但在一般情況下,這是Cookie的好選擇。

+0

是的我想說我從來沒有瀏覽過禁用的Cookie,以便了解有多少網站明確要求使用Cookie,然後回退到無Cookie系統。感謝HTTP基本認證的想法。對於那些對Cookie太偏執的人來說,這似乎是一個很好的解決方案 – Nat 2010-09-26 14:51:41

+0

禁用cookie或引用者或更改用戶代理字符串的人通常是知道他們在做什麼並知道它會破壞很多頁面的人。因此,我不打算爲這些實施一些東西。 – NikiC 2010-09-26 15:28:33

+0

如果您認爲發送每個請求的明文密碼*,HTTP基本身份驗證只是一個好主意。請記住,基本身份驗證只是用戶名:在Base64中編碼的密碼,通過HTTP標頭髮送... – Gareth 2010-09-27 01:10:00

1

那麼,要麼你必須將會話ID存儲在cookie中或查詢字符串參數中。

你說得對,使用參數是一個安全漏洞。所有人需要做的就是分享他們的網址,他們已經放棄了他們的網站身份。

有些框架,如Rails,如果cookie不可用,則不允許使用會話,如果您認真考慮安全性,我認爲這是可接受的立場。

+0

你能以多快的速度解決Rubics Cube? – NikiC 2010-09-26 15:29:47

相關問題