如何在没有CAPTCHA或中央管理系统(例如akismet)的情况下防止垃圾邮件

Tim*_*mJK 13 captcha spam-prevention

是否有人能够成功地阻止其网站上的垃圾邮件而不会给访问者带来负担(例如CAPTCHA)并且不使用集中式垃圾邮件报告系统(例如Akismet)

我发现它看起来很有希望,但不包含详细的部署说明.

我希望在不使用CAPTCHA技术的情况下为我的用户增加负担来呈现我的网络表单,而且还要主动自动防止垃圾邮件.

似乎没有关于如何实现这种技术的详细指导/教程.

放弃

此外,我意识到没有适合防止垃圾邮件的银弹.但是,如果简单地建立一个阻止95%以上垃圾邮件的非侵入性(用户不可见)预防系统,那么部署的努力是值得的.

mon*_*nge 6

我基本上在我的网站上使用一个技巧来防止垃圾邮件,它的效果很好(至少在spambot程序员阅读这篇文章之前;)).

代码是这样的:

在构建包含表单的站点的脚本中,我实现了:

$_SESSION['lastSiteId'] = 'something Unique';
$_SESSION['lastSiteRequest'] = time();
Run Code Online (Sandbox Code Playgroud)

包含将注释写入数据库的逻辑的脚本包含:

if($_SESSION['lastSiteId'] == 'something Unique' 
   && $_SESSION['lastSiteRequest'] + 5 < time()){

    insertComment();
}else{
    echo "Please read the article before posting a comment";
}
Run Code Online (Sandbox Code Playgroud)

记住这是伪代码给你的想法.你必须最终单独实现它...;)

它只是检查在重新生成表单和发送POST请求之间是否超过5秒.

请注意,spambot工程师没有睡觉.投注是,如果程序员想要那样,垃圾邮件程序可以在发布不需要的输入之前等待几秒钟.问题是:如果垃圾邮件发送者必须在请求之间等待5秒,可以发送多少垃圾邮件?看,这可能是垃圾邮件预防的最终解决方案.

将时间测试与javascript测试(如果可能和想要)以及预填充/未填充的隐藏字段技巧相结合,您应该在几年后从垃圾邮件中保存.


Mat*_*nes 3

Honey Pot 验证码(Phil Haack 的文章)。是用于执行您正在寻找的操作的常用方法。这并不是万无一失的,但真正的情况又是什么呢?

这似乎是您已经探索过的内容。只需尽职调查以了解该解决方案的局限性,如果您仍然发现它满足您的需求,请放心该技术已被其他人充分利用。