回答
在PHP中,通過使用set_cookie
將適當的值從$_SESSION
複製到$_COOKIE
來爲會話信息(用戶名,密碼)設置一個cookie。當用戶訪問一個頁面時,首先檢查是否存在$_SESSION
變量,然後是$_COOKIE
變量。如果存在$_COOKIE
變量但$_SESSION
變量不存在,請將$_COOKIE
複製到$_SESSION
。 (也就是說,如果用戶選中該框)。
你當然是指'set_cookie',因爲'$ _COOKIE'不是魔術。 – 2011-06-11 22:51:02
是的,當然這就是我的意思......混淆了。 – Ryan 2011-06-11 22:51:53
如果有會話設置,cookie應該做的唯一事情就是指向一個可以重新初始化的已保存(在數據庫中)會話。我不同意客戶需要保存在cookie中的用戶名和密碼。會議不需要保存在其中的密碼,IMO。 – 2011-06-11 22:53:42
您可以按照上面提到的@minitech進行操作。然而,將密碼信息存儲在cookie中並不是一個好主意。它可以很容易地從電腦中提取。
您最好生成一次性散列,可以用來登錄一次並將其存儲在cookie中。一旦其使用無效。雖然它不是完全安全的(無論如何,儘可能安全地使用會話,如果您希望它更安全,可以使用https),但不會影響用戶密碼。
用戶經常在多個站點上使用相同的密碼。如果它在一個網站上受到損害,則更容易進入其他網站上的用戶帳戶。
存儲密碼記憶東西的最佳方法是將md5哈希與一些瀏覽器特定數據一起存儲。例如,你存儲一個字符串,如
username-4155b1b6e53ad73e06c4c58e709cdeea19915ea84de517500d9ba3280e27cf59
例如,你可以生成這個字符串在PHP這樣
$string=$username.'-'.md5(substr($http_user_agent, 5, 10)) .md5($password).md5(substr($http_user_agent, 0, 10));
我們的目標是使我們的字符串足夠複雜。在登錄階段,我們使用只有我們知道的方法來提取密碼md5。
$somearray=explode('-', $string);
$username=$somearray[0];
$passwordmd5=str_replace(md5(substr($http_user_agent, 0, 10)),'',str_replace(md5(substr($http_user_agent, 5, 10)),'', $string));
,現在,我們可以做我們的數據庫這樣的比較,
select * from users where username='$username' and md5(password)='$passwordmd5';
HTTP用戶代理的東西消除了一下cookie字符串的未經授權使用的風險。雖然未經授權的人偷走了cookie,但是他不能在另一個瀏覽器中使用它。如果我們沒有這樣做,那麼具有相同字符串的人可能表現得好像他擁有密碼並且可以作爲我們的真實用戶登錄。
$somearray = explode('-', $string);
$username = $somearray[0];
$passwordmd5 = str_replace(md5(substr($http_user_agent, 0, 10)),'',str_replace(md5(substr($http_user_agent, 5, 10)),'', $string));
- 1. 還記得我嗎?
- 2. 還記得以前的鑰匙嗎?
- 3. 還記得我的cookie,需要一個會話cookie嗎?
- 4. Python的Django的 - 還記得我
- 5. 還記得我目前的看法
- 6. 我還需要使用type ='text/javascript'嗎?
- 7. 還記得表格選擇
- 8. 還記得在HTML/CSS表
- 9. Apache Shiro - 註銷時記得我cookie嗎?
- 10. 記得我在做Laravel和Yii2嗎?
- 11. 我可以還原還原嗎? SQL Server
- 12. 我記得的JavaScript兼容性
- 13. 我可以從Javascript獲得iOS6 IDFA嗎?
- 14. Chrome記得老javascript
- 15. 的Spring Security還記得我退出問題
- 16. 硅石定製/持續性還記得我
- 17. 春季安全+還記得我的問題+檢票
- 18. 斯威夫特。還記得Facebook登錄
- 19. 還記得在DataGridView檢查複選框
- 20. 還記得較好的語言
- 21. Struts2記得我
- 22. 使用phusion/baseimage還是值得的嗎?
- 23. JavaScript - 錯誤還是我盲?
- 24. 做scriptaculous還有Javascript黑客漏洞嗎?
- 25. 記得我的laravel5.2
- 26. setTimeout不記得函數javascript
- 27. 你還記得jira standalone的最新版本,無限用戶免費嗎?
- 28. 我還是沒有得到MVVM!
- 29. 我們還應該支持iOS 4嗎?
- 30. 使用Solr,我還需要SQL db嗎?
也許記住用戶名,但不是密碼。您不需要將密碼存儲在服務器上的用戶表中的任何位置,即使此時需要使用強大的哈希算法(最小值,sha1)對其進行哈希處理。 – 2011-06-11 22:50:54