有没有人能够在不给访问者带来负担(例如 CAPTCHA)且不使用集中式垃圾邮件报告系统(例如 Akismet)的情况下成功阻止其网站上的垃圾邮件
我找到了 this & it looks promising, but doesn't contain detailed deployment instructions.
我想展示我的 Web 表单,而不会用 CAPTCHA 之类的技术给我的用户带来负担,而且还要主动自动防止垃圾邮件。
似乎没有关于如何实现这种技术的详细说明/教程。
免责声明
此外,我意识到没有适合防止垃圾邮件的 Elixir 。但是,如果简单地部署一个非侵入性(用户不可见)预防系统来阻止 95+% 的垃圾邮件,那么部署是值得的。
最佳答案
我基本上在我的网站上使用一个技巧来防止垃圾邮件,并且效果很好(至少在垃圾邮件程序员阅读这篇文章之前;))。
代码是这样的:
在构建包含表单的站点的脚本中,我实现了:
$_SESSION['lastSiteId'] = 'something Unique';
$_SESSION['lastSiteRequest'] = time();
包含将评论写入数据库的逻辑的脚本包含以下内容:
if($_SESSION['lastSiteId'] == 'something Unique'
&& $_SESSION['lastSiteRequest'] + 5 < time()){
insertComment();
}else{
echo "Please read the article before posting a comment";
}
请记住,这是为您提供想法的伪代码。你最终必须独自实现它...... ;)
它所做的只是检查在重新编写表单和发送 POST 请求之间是否经过了 5 秒以上。
请注意,垃圾邮件工程师并没有 sleep 。赌注是,如果程序员希望这样,垃圾邮件机器人可以在发布不需要的输入之前等待几秒钟。
问题是:如果垃圾邮件发送者必须在两次请求之间等待 5 秒,可以发送多少垃圾邮件?看,也许这是防止垃圾邮件的最终解决方案。
将时间测试与 javascript 测试(如果可能并且需要)以及预填充/未填充的隐藏字段技巧相结合,几年后您应该可以避免垃圾邮件。
关于captcha - 如何在没有 CAPTCHA 或集中管理系统(例如 akismet)的情况下防止垃圾邮件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1296686/