iT邦幫忙

0

關於PHP密碼驗證

小弟想請問
如何在登入頁面上限制登入次數
封鎖錯誤過多的IP
*驗證是採MySQL
感謝各位大大回答~

2 個回答

16
wiseguy
iT邦超人 1 級 ‧ 2013-08-16 09:58:17
最佳解答

驗證資料表要有底下五個欄位
※ [帳號]
※ [密碼]
※ [登入錯誤次數]
※ [最後登入時間]
※ [最後登入IP]

步驟虛擬碼:(假設錯 3 次要鎖 1 小時)

<pre class="c" name="code">if (資料表存在 (最後登入IP=IP && 登入錯誤次數 >= 3 && 最後登入時間 <= 1 小時) )
{
	// 抱歉,此 IP 登入錯誤太多,封鎖中 (錯 3 次後該 IP 又試圖登入)
}
else
{
	if (該帳號密碼錯誤)
	{
		if (最後登入時間 > 1 小時)
		{
			update 該帳號登入錯誤次數=1;
		}
		else
		{
			if (登入錯誤次數 >=2)
			{
				// 抱歉,此 IP 登入錯誤太多,封鎖中 (錯 3 次後馬上封鎖)
			}
			update 該帳號登入錯誤次數+1;
		}
	}
	else
	{
		update 該帳號登入錯誤次數=0;
	}
	update 該帳號最後登入時間及最後登入 IP;
}
10
iknowlab
iT邦研究生 4 級 ‧ 2013-08-15 23:38:19

*驗證是採MySQL ?
MySQL 應該是資料庫啊!

你知道如何開 MySQL 資料庫、資料表嗎?
你知道如何紀錄到訪者的 IP 嗎?
你知道如何寫下登入錯誤紀錄累加到資料表內嗎?
若要封鎖 IP,你知道要如何讓「登入表格」消失嗎?

如果以上基本方法都知道,你要的目的就做得到了。
想設計個功能系統,就是要先自己思考。發問時應該只是問其中的「瓶頸」。
如果還想知道程式碼,那就真的要有人佛心來了。

我要發表回答

立即登入回答