2011-08-01 85 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