2013-09-27 79 views
0

我目前正在瞭解Web應用程序中的安全方面。如何安全地存儲和訪問用戶會話數據

我的應用程序用於通過成功登錄時創建的cookie識別當前用戶。它包含用戶的ID。每次用戶向數據庫發出請求時,我的應用程序都會使用該ID來選擇僅與該ID關聯的結果。

然而,正如我瞭解到,這將是一點問題都沒有簡單地改變cookie的值,因此可以訪問其他用戶的數據。

我現在的問題是:我怎麼會安全地存儲這些數據,並使其可用於PHP和JavaScript的?

我想到了HTML5 sessionStorage,但那也會很脆弱。

我的第二個想到的是它的PHP僅在$ _SESSION變量中存儲,但我無法通過JavaScript訪問它的價值。

我覺得我不能環繞的如何建立一個安全和功能的用戶管理系統的基本概念,我的頭。

任何幫助將不勝感激。

+0

可以打開在服務器的會話與聯營用戶ID –

+0

驗證cookie的你考慮的可能性你不需要這個值客戶端(JavaScript)?任何類型的驗證都應該在服務器端完成。 – Gray

+0

您是否閱讀過手冊:http://php.net/manual/en/session.examples.basic.php? – jeff

回答

0

我只會在會話中存儲用戶標識數據。你爲什麼需要cookies? 要在JS和PHP之間進行通信,請使用ajax。對此的最佳圖書館是jQuery

0

簡單的解決方案:

  1. 一個USERKEY字段添加到數據庫中。
  2. 當用戶登錄時,生成一個隨機唯一字符串並將其保存在數據庫中
  3. 將此字符串保存在cookie中。將用戶ID保存在Cookie中。

在下次訪問時,請從數據庫用戶中選擇相應的userKey和ID。

它有點安全,因爲字符串是隨機的,所以只有bruteforce有幫助。

更長的字符串 - 難以暴力破解。

解決方法很簡單,可以通過使用ID的crypting,檢查IP升級等