我正在爲我的CMS頁面創建一個鎖定系統。這個想法是在24小時內發生5次錯誤嘗試後超時48小時。但是,如果用戶在24小時內輸入了正確的密碼,那麼應該刪除超時帳戶。在成功嘗試和嘗試失敗後,我遇到了超時和解鎖用戶帳戶的問題。爲很多登錄嘗試失敗後計時用戶
這個想法是失敗的嘗試和超時發生後,如果他們正確輸入密碼,它取消超時。如果他們在24小時內(超時後)再次輸入錯誤密碼,則先前的錯誤嘗試將被忽略,並且僅顯示上次成功嘗試後的最新失敗嘗試。
我已經創建了一個表來存儲UNSUCCESSFUL嘗試。我需要幫助,讓代碼檢查最近5次連續失敗的嘗試次數。然後,如果用戶輸入正確的密碼(24小時內)>刪除超時。
$qry = " SELECT
CASE WHEN count(*) >= 5 THEN 0 ELSE 1 END as allowed_login
FROM
cms_user_login_attempts
WHERE
cula_date_time >= DATE_SUB(CURRENT_TIMESTAMP, interval 48 hour)
AND
cula_user_id = " . $db->SQLString($row->user_id) . "";
我不確定我是否理解。如果用戶輸入錯誤密碼的次數太多,你想鎖定用戶,但如果他們輸入正確的密碼,你會讓他們回來?這種方式不是首先打破這種鎖定的目的嗎? –
這是正確的,是的。它的規格我必須經過。我想改變它,但不能。 –
我會認爲像這樣的安全問題將是一個很好的理由來糾正規範。 –