我使用非常簡單的PHP代碼構建了幾個站點,並且迄今爲止這麼好,但是我碰巧發現我現在擔心主題「安全性」,我想知道在PHP中創建登錄/身份驗證過程的最佳方式是什麼關於網站用戶認證的PHP最佳實踐?
這就是我目前做的:
註冊時用戶提交電子郵件地址和密碼將被保存密碼 ,在MySQL中,作爲一個MD5的字符串,所以任何人,但用戶知道它。
當用戶登錄,我做
SELECT * FROM usertable WHERE email = $emailsubmitted AND pass = md5($passsubmitted)
然後如果sizeof運算所得到的陣列更接零,這意味着該用戶是否存在
所以設置
session_start();
$_SESSION['logged'] = 'true';
$_SESSION[userid] = userid;
所以對於用戶瀏覽的每一頁,我將執行檢查以查看會話變量是否存在。
底線:我想知道這是否足夠安全以及如何改進。
「足夠安全」是爲了什麼?對於公告板似乎足夠了。其他:http://stackoverflow.com/questions/401656/secure-hash-and-salt-for-php-passwords – mario 2011-05-03 23:31:08
您應該儘可能重新使用現有的身份驗證框架,因爲它確實很複雜。例如,看一下https://github.com/delight-im/PHP-Auth,它既是框架不可知的,也是與數據庫無關的。 – caw 2016-10-21 21:36:24