2013-02-05 21 views
0

因此,我剛剛在我正在開發的開發項目上創建一個登錄腳本時發現了一個BIG「No-No」。

在設置cookie,user_ID和加密密碼時,我注意到在Google Chrome(或Mozilla Firefox的簡單擴展)上,我可以將用戶ID cookie編輯爲另一個用戶的用戶ID,並訪問該網站就像我是他們。

有沒有人有任何指示我需要採取什麼路線,所以這不會發生?請讓我知道是否需要更多信息。

+3

您不應該在Cookie中存儲敏感信息。您應該將用戶的數據存儲在[sessions](http://php.net/manual/en/book.session.php)中。 – Supericy

+0

如果包含一段用戶信息的cookie未被存儲,內容仍然是動態的(每個用戶)? –

+0

備忘單:https://www.owasp.org/index.php/Session_Management_Cheat_Sheet – ficuscr

回答

0

如果您需要保持人員登錄時間超過瀏覽器會話時間,則應將用戶數據等內容存儲在數據庫中,然後創建一個與數據庫行ID匹配的cookie。只是FYI不使用自動遞增ID

1

如果您不打算在服務器上驗證它,爲什麼要存儲加密的密碼?如果用戶發送用戶標識但密碼不匹配,則不應允許他們訪問該網站。

在任何情況下,您都應該使用$_SESSION變量來保存登錄信息等信息。這樣用戶只能看到會話ID。雖然理論上可以猜測其他人的會話ID(或竊取它 - 會話劫持),但您可以添加其他圖層,例如要求用戶代理和IP地址保持不變 - 這取決於需要多少安全性。

+0

我明白。因此,最佳做法是在收集動態內容的用戶信息時僅使用SESSION Cookie。 –

+0

我的腳本確實記錄了不正確的密碼,我只是不確定如何爲「僅限會員」網站存儲他們的憑據。 –