我在我掌握的网站上有一个论坛,每天都会收到垃圾邮件.目前我删除垃圾邮件并阻止IP.但这并不是很好.被阻止的IP列表正在快速增长,但论坛中的垃圾邮件数量也在增长.
该论坛完全是我自己的代码.它内置于PHP和MySQL中.
什么是阻止垃圾邮件的具体方法?
编辑 我忘记提到的事情是论坛需要对未注册用户开放发布.有点像博客评论.
在我写的留言簿应用程序中,我实现了两个阻止大多数垃圾邮件的功能:
不允许POST作为会话中的第一个请求
发布时需要有效的HTTP Refer(r)er
我所知道的一种方法是在提交表单之前使用JavaScript.例如,要将方法从GET更改为POST.;)Spambots在执行JavaScript时很糟糕.当然,这也意味着非Javascript用户将无法使用您的网站......如果您关心他们的话.;)(注意:我没有)
根据我的经验,最好的轻松防御来自于做"非标准"的事情.如果您使您的网站不标准,这使得任何自动垃圾邮件都必须专门为您的网站编码,这可能是不值得的.请注意,如果垃圾邮件来自人类垃圾邮件发送者,那么您无法做任何事情也不会阻止合法海报.因此,我们的目标是找到一个可以丢弃任何"标准"帖子的解决方案 - 即"填写整个表单并推送提交".
想到你可以尝试的事情的几个例子:
有一个隐藏的表单字段,其名称听起来像垃圾邮件发送者想要填写的内容,如"网站"或"主页"或类似的东西.如果填写表单字段,则抛弃消息而不是发布消息,因为它是一个机器人自动填写整个表单,甚至是不可见的字段.
您不必使用"真实"验证码,但即使是"向后输入以下单词:<随机向后单词>"或"此网站的域名是什么?"之类的简单内容.人类容易做,但需要一个相当复杂的机器人才能找出要填写的内容.