PHP 登入嘗試次數設計的原理是什麼?

時間 2021-06-03 01:46:47

1樓:笑盡往事

我想到兩種方案

1.把使用者發簡訊的記錄寫入redis的key-v然後判斷,再設定乙個失效時間是15分鐘

2.把使用者簡訊記錄寫入資料庫,然後運算元據庫

2樓:小小魯

1,不要使用session, 可以使用cache 和資料庫

2,要實現max retry 將記錄錯誤次數限制登陸分離會相對簡單點

步驟:->訪問->檢查是否被限制登陸->登陸操作->失敗記錄失敗次數->失敗次數達到一定閾值發出限制登陸命令

redis實現

$redis

=new

Redis

();$redis

->connect

('127.0.0.1'

,'6379',0

);// 檢查是否被限制登陸

$remainTime

=$redis

->ttl(

'refuse:'

.$user_id

);if

(floatval

($remainTime

)>0)

// 登陸操作

// .....

// 登陸錯誤,記錄登陸次數if(

登陸失敗

)$remainCount=5

-$failCount

;echo

"登陸錯誤

$failCount

次, 剩餘

$remainCount次";

exit;}

// 登陸成功,抹除錯誤記錄

else

資料庫同理。

3樓:齊跡

基於session和cookie 從安全的角度來說就是掩耳盜鈴!因為這兩個都是使用者可控的。

略施伎倆就能繞過。

所以解決方案必須是基於伺服器的

1 cache

2 資料庫

上面的朋友說到了用乙個字段記錄。其實這個不是最佳的。因為限制次數和時間有關係的。

如果有cache(memcache)可以優先考慮基於資料庫應該建立乙個登陸日誌表。這樣不但可以解決題主的問題。而且也可以收集一些資料進行業務分析。

4樓:

如果要嚴謹一點就使用資料庫,在資料庫使用者表中增加乙個字段用來記錄錯誤的登入次數,

當這個賬戶每次嘗試登入,錯誤之後就將資料庫中這個欄位+1 如果成功登入就將這個欄位的數字置為0

當然session和cookie 也不失為一種好辦法。

設計原理是觸類旁通的嗎?

牛輝 從功能上來說,不同領域的設計是不相同的。但是從滿足客戶心理需求 提高產品的舒適度等角度來說,是相同的。其實每乙個設計師都會不斷的問自己乙個問題 客戶需要什麼?不提出這個問題或者不經思考來回答這個問題,是不能成為業內領先的。 千鳥 思想和意識形態層面 不可操作 都是相通的,以建築設計 工業設計 ...

安利 2000 多元的無煙鍋是真的嗎?原理是什麼?

小訝 在選擇無煙鍋的時候,一定要注意有塗層的無煙鍋可能含有致癌物質,而且使用壽命短 2000多如果是買的是塗層鍋,那就是智商稅,這個價位可以買到很好的物理無煙鍋了 如果2000多買的是進口物理無煙鍋,論品質和壽命都能秒殺國內的無煙鍋,使用體驗絕對超乎你的想象。小訝 2020無煙鍋推薦,無油煙不粘鍋推...

php函式是怎麼判定檔案裡一行內容的。為什麼我讀取的一行不完整

黃良懿 瀉藥,知乎上知道這個問題答案的人很多,但大部分都像我一樣,真的不想回答這樣的問題。建議樓主提問前先查PHP文件 不行再Google,最後再提出自己的疑問,並詳述做過的嘗試,對疑問的初步分析,這才能真正的提高自己。以下內容複製自PHP官方文件 fgets PHP 4,PHP 5 fgets 從...