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 從...