2012-12-17 31 views
3

我有一個動態的PHP頁面,它將用戶選擇的POL選項更新爲數據庫。有時我的Apache服務器只能通過調用這個頁面來重載(意味着有人正在使用腳本來調用這個循環) 你能幫我防止這個嗎?如何防止網站從不需要的系統生成的HTTP調用

我已經計劃要做到這一點:

  1. 我將繼續沒有請求作爲計數器在內存緩存每一個請求(鍵:MD5(用戶IP),值:計數器)
  2. 如果計數器超過10在10秒內,我將阻止該用戶。

但保持IP作爲密鑰不起作用,因爲許多組織使用單一的互聯網IP爲他們的所有員工系統。

回答

0

雖然我通常討厭Captcha的...你可以嘗試在你的網站上實現一個。你甚至可以讓驗證碼只在來自同一個IP的X票數後出現,這樣公衆纔會看到它。

1

與大多數民意調查一樣,您需要一種方法來確保用戶只能投票一次。有幾種方法可以確保只投一票。

  • 要求註冊用戶(最安全的)每個IP
  • 一票(問題上的相同Ip的多個用戶)每IP XX分鐘
  • 一票(更好的防止過載,而不是假的投票)
  • 驗證碼,以防止自動提交(我喜歡這個,http://www.webappers.com/2011/03/03/a-draggable-jquery-captcha-system-with-jquery-ui/
  • 在pol中隱藏代碼,只能使用一次。每當你生成一個pol,生成一次代碼。沒有代碼,錯誤的代碼或使用的代碼是沒有投票權的。有點像隱藏的驗證碼。用戶友好但安全性較低。

這一切都取決於你想要防止的。如果它只是超載,但人們可以多投一次,那麼你有更多的選擇。如果您只想讓每位用戶進行一次投票,則只有註冊系統是安全的。雖然有人可以創建多個賬戶。

+0

謝謝Delsing,我將使用驗證碼 –