我有一個php程序,它有登錄頁面和註銷頁面。當用戶在頁面成功登錄都將被重定向加載時的index.php的index.php會話可以用來存儲安全信息?
,它將從數據庫中讀取數據(MySQL的,即從用戶選擇*)和填充一些用戶數據,並在表好的格式顯示它們
Name Phone DOB ... Option
John Doe xxx-xxx-xxxx mm-dd-yy ... [Edit] [Details]...
等
不從查詢結果的所有字段將被顯示在上表中,僅它們中的一些會。
在Option欄下有一個名爲「Details」的選項,點擊後用戶將能夠看到一些安全信息。
我能想到的做這件事的方法有兩種:
時的index.php被加載的,而不是調用SELECT * FROM用戶(其中會包含一些安全信息),我就打電話「從用戶中選擇ID全名,電話,dob「。 (除非有必要,否則不要選擇)。然後當點擊「詳細信息」時,我會通過ID並通過使用該ID從數據庫檢索安全信息。 (國際海事組織這是最安全的方式,但我將不得不作出額外的查詢呼叫)
當index.php加載時,我會做一個選擇*從用戶。將查詢結果(數組)保存到Session中,然後當單擊「Details」時,我將從Session中檢索數組。這樣我就不必進行額外的查詢調用,但是我不確定Session是否安全。
就安全性而言哪種方式更好? (如果它們都不是,請告訴我該怎麼做)
你寫*「在安全方面」*。請顯示您提及的確切條款。一般而言,你絕對不應該用'*'調用'SELECT'。其餘的 - 除非提供進一步的信息 - 受制於口味和觀點,並且很大程度上取決於你在那裏做什麼,因此它不能真正回答。 – hakre
$ _SESSION數據保存在服務器上。只有您的代碼提供訪問權限,或者用戶有權訪問服務器,才能看到會話內容。在正常操作中發送給用戶的唯一「會話」數據是通過cookie的會話ID。 –
你應該看看[爲什麼選擇*被認爲是有害的](http://stackoverflow.com/questions/3639861/why-is-select-considered-harmful) – IROEGBU