登錄嘗試失敗後,我想拒絕IP訪問服務器。我之前已經通過將IP或塊添加到/etc/apache2/httpd.conf文件中,從而拒絕訪問Web服務器。登錄嘗試失敗後拒絕apache2訪問
<Location "/">
Order Allow,Deny
Allow from all
Deny from 1.2.3.4/30 3.4.5.6/15
Deny from 9.4.3.4
</Location>
人知道如何使用PHP編程方式做到這一點,或者是具有Apache2的查詢MySQL的一個以設定的間隔「IP-拒絕列表」?
謝謝!
編輯已完成的表格上澄清
提交,MySQL是用於查詢用戶名。如果找到用戶名,腳本繼續檢查pw,然後稍後檢查登錄失敗。如果登錄計數器失敗> = 4,則用戶的帳戶被鎖定,但他們仍然可以訪問服務器。
如果用戶名未找到,我查詢dif。用戶IP表。如果IP發現AND login_counter> = 4使用類似上面的apache2 httpd.conf的方法從服務器阻止IP。
* *最終編輯/想法
我怕我會打開一個更大的安全漏洞,如果我要奉獻www數據的用戶燙髮。編輯.htaccess文件,因爲沒有辦法參考。 .htaccess中的一個文件可能是www-data可寫的,這是我的解決方案。
如果用戶名不在db中,請將IP寫入數據庫並記錄每個IP的失敗嘗試次數。在站點重新訪問時,如果IP位於db並且嘗試> = 4,則登錄腳本die()。接下來,我將編寫一個外部腳本(不能通過www-data訪問),每天晚上輪詢db的IP地址,嘗試> = 4,並將它們添加到.htaccess。
我傾向於在登錄頁面本身上使用login_log表執行此操作,並且每行都失敗或成功,如果嘗試失敗10次e在5分鐘內,我向他們展示了一個他們必須填寫的令人討厭的驗證碼,以證明他們並沒有打擊我的表格。雖然你必須更清楚,這是否應該阻止用戶登錄到您的網站或服務器? – Sammaye