2010-03-21 54 views
0

自動請求我從某些ips我已經自動請求我已經阻止了IP現在它來自其他IP。是否有可能停止從特定ip

是否可以檢測自動請求並以編程方式阻止IP?

+0

這將更適合服務器故障。請參閱http://serverfault.com/questions/20667/equivalent-to-denyhosts-but-for-http-requests一個好的開始。 – 2010-03-21 05:53:31

回答

2

嘗試阻止IP子網。另外,您可以使用CAPTCHA來防止自動請求。

+0

但是這也會對公平用戶造成影響...... – 2010-03-21 06:13:08

+0

這是正確的。這就是爲什麼我提到關於CAPTCHA的原因。而且,別忘了,有時阻止子網是保護其他用戶的好方法。 – B7ackAnge7z 2010-03-21 06:25:06

+0

這是captcha什麼會打不僅相同的子網用戶,但每個用戶的網站。 – 2010-03-21 07:11:35

0

雖然我認爲使用防火牆來處理這個問題更好,但您可以使用sleep()來插入執行腳本的時間。小於100毫秒的數量對您的用戶沒有任何影響,但可以嚴重降低自動攻擊的有效性。再次,我會用適當的防火牆規則來攻擊它,但這可能是一個有效的黑客攻擊。

0

你可以做的一件事是跟蹤你最近的X個訪問者的IP(100/1000/10K等)幷包括時間戳。如果在給定時間範圍內的操作太多,您可以禁用或停止網頁的功能。

要做到這一切......

1)你需要包含在你身邊的每一頁,執行的檢查,看是否請求者IP是不是「禁止」的PHP文件。簡單地建立你的標準,並從數據庫中獲取信息。如果他們被「封鎖」或「禁止」,只需使用header()(或類似的)來拒絕訪問。 http://php.net/manual/en/function.header.php

2)要捕獲IP,您需要使用$ _SERVER ['REMOTE_ADDR']獲取當前客戶端的IP地址。

http://php.net/manual/en/reserved.variables.server.php

相關問題