2013-08-29 64 views
0

我有一個php程序,它有登錄頁面和註銷頁面。當用戶在頁面成功登錄都將被重定向加載時的index.php的index.php會話可以用來存儲安全信息?

,它將從數據庫中讀取數據(MySQL的,即從用戶選擇*)和填充一些用戶數據,並在表好的格式顯示它們

Name   Phone    DOB   ...    Option 
John Doe  xxx-xxx-xxxx  mm-dd-yy  ...    [Edit] [Details]... 

不從查詢結果的所有字段將被顯示在上表中,僅它們中的一些會。

在Option欄下有一個名爲「Details」的選項,點擊後用戶將能夠看到一些安全信息。

我能想到的做這件事的方法有兩種:

  1. 時的index.php被加載的,而不是調用SELECT * FROM用戶(其中​​會包含一些安全信息),我就打電話「從用戶中選擇ID全名,電話,dob「。 (除非有必要,否則不要選擇)。然後當點擊「詳細信息」時,我會通過ID並通過使用該ID從數據庫檢索安全信息。 (國際海事組織這是最安全的方式,但我將不得不作出額外的查詢呼叫)

  2. 當index.php加載時,我會做一個選擇*從用戶。將查詢結果(數組)保存到Session中,然後當單擊「Details」時,我將從Session中檢索數組。這樣我就不必進行額外的查詢調用,但是我不確定Session是否安全。

就安全性而言哪種方式更好? (如果它們都不是,請告訴我該怎麼做)

+1

你寫*「在安全方面」*。請顯示您提及的確切條款。一般而言,你絕對不應該用'*'調用'SELECT'。其餘的 - 除非提供進一步的信息 - 受制於口味和觀點,並且很大程度上取決於你在那裏做什麼,因此它不能真正回答。 – hakre

+0

$ _SESSION數據保存在服務器上。只有您的代碼提供訪問權限,或者用戶有權訪問服務器,才能看到會話內容。在正常操作中發送給用戶的唯一「會話」數據是通過cookie的會話ID。 –

+2

你應該看看[爲什麼選擇*被認爲是有害的](http://stackoverflow.com/questions/3639861/why-is-select-considered-harmful) – IROEGBU

回答

4

在會話中存儲數據是安全的。將數據存儲在Cookie中是而不是安全。

會話存儲在服務器上,cookie由客戶端存儲(因此它們是不安全的)。

就績效而言..這取決於。沒有單一的答案,做什麼適合你,但通過一切手段保持簡單

相關問題