程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 不用session的驗證碼

不用session的驗證碼

編輯:關於PHP編程

問題:
現在很多大型網站會在首頁上顯示用戶登錄,為了防止惡意刷新,都會加上驗證碼,但這樣導致大量session的產生,占用服務器內存。

解決方案:
1. 輸入賬號密碼後提示輸入驗證碼,這個實現簡單不說怎麼做了
2. 克服大量session產生,這個解決方案比較復雜,僅僅作為研究玩玩,實際應用還是推薦上面的方案。
步驟一:每次訪問產生一個唯一驗證ID(可以用GUID)和驗證碼,用3DES保存到客戶端
步驟二:服務器端把用戶輸入的驗證碼和3DES裡的驗證碼比較,相等繼續
步驟三:檢測唯一驗證ID近期是否使用過(可以用memcached),沒有使用過繼續
步驟四:把本次的唯一驗證ID保存到近期使用列表中
完成

說明:這個方案通過加密避免了大量session維護,但會有額外加密開銷。通過近期使用列表防止同一驗證碼被重復使用,“近期”的時間范圍可以根據實際情況確定。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved