2011-08-01 120 views
0

我有一個網站開始增長,但隨着用戶繼續註冊並向其他成員發送垃圾郵件消息。我目前使用谷歌的captcha API服務,但如果用戶手動創建一個帳戶,那麼這是沒用的。我的主要問題是在用戶創建假帳戶後,他們開始發送重複郵件,所以我的想法是檢查一些PHP代碼中的消息的相似性,並在發送x金額後拒絕它們,但我不確定這是多少負載穿上服務器。有沒有辦法可以在註冊時獲得IP,如果他們開始發送垃圾郵件,則禁止該IP。這讓我瘋狂,因爲我現在每天花費將近一個小時來清理垃圾郵件並刪除無效用戶。讓其他人遇到這個問題,你採取了哪些措施?如何防止SPAM用戶註冊?

回答

5

有各種解決方案,但他們都沒有完美的工作,最好是使用解決方案的組合。

幾個解決方案:

  • 強制用於發送消息的時間限制(每30秒或60秒1個消息)
  • 使用PHP函數similar_text所要檢查的最後一個發送的消息的新消息和拒絕發送消息,如果相似度超過設定的百分比(我猜70%以上)
  • 使用CAPTCHA的,如果用戶在設定的時間
  • 發送大量的郵件保存列表的IP不會忽略($ _ SERVER [」 REMOTE_ADDR']會告訴你哪個IP是你的ser)在你的用戶數據庫中,並保留一個禁止列表,然後用它來檢查用戶註冊時是否阻止他們創建帳戶。
  • 給你的用戶的報告按鈕,通知您的垃圾郵件
  • 自動臨時禁令時,他(她)經常報道/
  • 也請根據用戶的電子郵件地址禁止列表中的用戶(這需要更多的時間對於垃圾郵件發送者創建一個新的電子郵件地址(僅適用於經確認的電子郵件不會忽略這樣做,因爲電子郵件不會忽略可以劫持)

這些僅僅是一些可用的選項,只是儘量使垃圾郵件發送者的生活艱苦儘可能

+0

感謝您的洞察力。我會盡力實現其中的一些想法。 – Paul

+0

在服務器上查看使用similar_text函數發送的最後10條消息是否太過重要? – Paul

+0

這取決於你可用的資源類型(服務器規格),我個人將它限制爲最後2條消息,因爲10條消息中的1條或多或少相似似乎很常見。 – Mervin

1

要獲得用戶的IP使用

$_SERVER['REMOTE_ADDR']; 

一步我已經採取超出被我挖掘到StopForumSpam's API自動阻止用戶,如果他們的IP或電子郵件中垃圾郵件發送者的發現數據庫。比驗證碼更聰明。

如果您受到垃圾郵件的攻擊,我建議您尋找類似的解決方案。

+0

這個作品很有用 - 很棒的回答 – Franco