2013-04-04 24 views
0

我真的不認爲有一個這樣的傻瓜式的方法,但我當然要來這裏尋求建議...php限制網站使用基於會話ID和/或IP地址及代理交換機的IP地址和帳戶

我有我想限制到每基於IP地址的用戶每天3個使用項目。當然,我可以用一個MySQL表爲傳統的使用情況很容易做到這一點......但我要如何解釋那些聰明地使用類似foxyproxy(代理切換插件的Firefox)和/或打開一個新的瀏覽器獲得新的會議。每一次使用都將顯示爲新鮮獨特的用戶。

我堅持一種非傻瓜式的方法,還是有什麼我可以嘗試?我相當肯定,我們的大部分用戶羣都不會知道如何使用,甚至不知道這些方法是什麼,但我仍然想解決它。

編輯:如果還有一個非php的解決方案,以及我對任何想法敞開。

回答

3

實際上,您無法通過fool-proof的方式來防止此問題。不管你想出什麼東西,對於那些對網絡工作模糊的線索的人來說,解決這個問題都是微不足道的。

您應該根據用戶標識而不是訪問服務的主機實施適當的認證系統和限制。

+2

什麼能阻止從任一登記一個用戶ID,除非你正在做這樣的事情,需要訪問信用卡授權的人。 – ceejayoz 2013-04-04 14:54:59

+0

我同意這是最好的方法。我確實要求我的用戶輸入他們的電子郵件來查看結果,以便我可以根據當時的電子郵件地址強制執行。良好的通話和非常感謝。 – 2013-04-04 14:55:17

+0

@ceejayoz一個非常有用的觀點。我想,這是一個你關心限速的問題。 – DaveRandom 2013-04-04 14:56:37

-2

你可以用一個cookie和一個ip阻止列表來限制它(當然你也可以使用flash cookies,javascript的local storage等等)。在這兩方面你都可以節省服務的使用量和使用時間。 如果用戶只是試圖刪除自己的餅乾沒有得到一個新的IP(可能是一個代理,或者你設置新的cookie(因爲你可以檢查此基於您的IP列表)。當然,其他全面太(設置的cookie如果HES只是改變了IP)。

,對於大多數普通用戶的作品。但沒有辦法絕對確保沒有人可以繞過你的極限。

+0

Cookies和IP阻止列表是無用的,如果我有機會到代理列表,並可以動態切換出來。我無法在服務器端強制執行Cookie。 – 2013-04-04 14:59:39

+0

正如在其他的答案中討論你可以添加更多的障礙,但不能完全阻止它。 – luxer 2013-04-04 15:08:21

0

一些代理服務器可能(也可能不會)集HTTP標頭中的真實IP地址,例如HTTP_CLIENT_IP或HTTP_X_FORWARDED_FOR您還可以嘗試根據$_SERVER中發現的其他變量區分用戶,如

[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 5.1; rv:19.0) Gecko/20100101 Firefox/19.0 
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
[HTTP_ACCEPT_LANGUAGE] => en-US,en;q=0.5 
[HTTP_ACCEPT_ENCODING] => gzip, deflate 
[HTTP_X_DNT_OVERSION] => 2.2.1.611 
[HTTP_X_DNT_COHORT] => 2012-8-2 
[HTTP_X_DNT_VERSION] => 2.2.8.307 FF ffamo 10008 

這並不完美,他們都可以僞造,你會得到很多誤報,因爲很多人都有這種設置,但如果你真的很絕望,這可能會有所幫助。