2015-11-01 25 views
1

所以,我創建這個網站的sessionStorage的變量「logedIn」設置爲true,當用戶成功地登錄這樣的:禁用可能性控制檯編輯的sessionStorage變量

sessionStorage.setItem('logedIn', 'true') 

該變量在使用其他網頁在顯示內容之前查看用戶是否已登錄,以便未登錄的用戶無法訪問該網頁。它的功能就像一個魅力,但我注意到,如果我手動在谷歌瀏覽器控制檯中鍵入代碼,我可以輕鬆更改會話變量。這顯然不是想要的。

我的問題是:我該如何解決這個問題?

PS:我不使用PHP會話變量的原因是因爲登錄過程是用javascript完成的。當按下登錄按鈕時,ajax會將給定的憑證發送給php腳本,該腳本會檢查數據庫。如果它是成功的,它將代碼發送回ajax complete函數,該函數設置變量。如果你做什麼,我需要做的更好的方法,你都非常歡迎;)

感謝,芝諾

+1

你是否控制驗證登錄的php腳本?只要設置'$ _SESSION ['loggedIn'] ='yup';'在那裏,並檢查它是否設置在每個PHP腳本。你不應該在JS – Terminus

+0

中做這種檢查好吧,我會這麼做,感謝你的快速反應! –

回答

4

你不能,這不是安全的。 AJAX結果後,您應該設置cookie並在服務器端的每個頁面上驗證它們。

+0

所以我不能使用PHP會話嗎? –

+0

你可以。使用[sessions](http://www.w3schools.com/php/php_sessions.asp)或基於cookie的自己的系統。 –

+0

還有一個問題,我可以在php文件中設置檢查數據庫中的給定憑據的變量,還是不工作/不安全? –