2012-06-10 41 views
0

我有一個腳本用於創建用戶登錄時的會話。會話如何工作?

然後,用戶權限級別隨同用戶表中的其他字段一起從用戶表中基於登錄時的用戶名和密碼會話獲取。

我已經設置了用戶權限和用戶ID作爲會話。

然後,我使用用戶ID從其他表中選擇基於其id的內容。

這種產品是否安全?有人可以強制會話更改,並以某種方式從另一個用戶獲取數據?或者可以將大量數據(除了密碼)設置爲會話可擴展?

乾杯,我希望這是有道理的..只是回顧:

我可以設置的登錄用戶的用戶ID爲會話cookie,是有辦法,有人可能更改cookie,並嘗試通過猜測他們的用戶ID來查看somoene其他數據?

乾杯 約翰

回答

0

安全規則號1 - 沒有實現自己的認證和會話管理方案。嘗試始終依靠您的平臺/框架標準實施。

在您的場景會話中,Cookie是不可信數據(即攻擊者可以在返回服務器的路上修改它)。如果您的會話ID很容易被猜出(例如增量整數),那麼更改此ID併成爲系統中的另一個用戶(會話劫持)是微不足道的。

如果您必須使用自己的機制,請考慮以下幾點: 1.跟蹤與會話關聯的IP地址。想想如果你看到來自不同IP地址的請求,你想要做什麼。 2.用力猜測會話ID /令牌。例如。不要使用整數 - 使用guid。如果必須使用會話ID作爲整數,則引入與此會話ID關聯的某種GUID,並將其與服務器端以及會話ID一起存儲在客戶端並存儲在cookie中。 這兩個值應該始終匹配 - 否則請求不是真的。

+0

一方面,您宣傳不使用自定義身份驗證或會話管理方案,但另一方面您建議我稱爲自定義實現的東西。像[GUID](http://en.wikipedia.org/wiki/Globally_unique_identifier)(相當普遍的術語),它可以有很少的熵(v1)和很多的熵(v4)。 – Gumbo