通过"蜜罐",我的意思或多或少是这种做法:
#Register form
<style>
.hideme{
display:none;
visibility: hidden;
}
</style>
<form action="register.php">
Your email: <input type="text" name="u-email" />
Choose a password: <input type="text" name="passwd" />
<div class="hideme">
Please, leave this field blank: <input type="text" name="email" /> #the comment is for text-browser users
</div>
<input type="submit" value="Register" autocomplete=off />
</form>
//register.php
<?php
if($_POST['email'] != ''){
die("You spammer!");
}
//otherwise, do the form validation and go on.
?>
Run Code Online (Sandbox Code Playgroud)
更多信息在这里.
显然,真实字段是用随机哈希命名的,而蜜罐字段可以有不同的名称(电子邮件,用户,网站,主页等等),这是spambot通常填写的.
我喜欢这种技术,因为它不会导致用户被CAPTCHA烦恼.
你有没有人对这种技术有一些经验?有效吗?
我目前在我的注册表上的蜜罐是一个电话号码的条目,它被放在屏幕上使用position: fixed;.
它欺骗了标准的品种形式填充物,但是效果不如我.此外,垃圾邮件程序立即响应表单中的更改,这意味着这是自动的,我该怎么办.
注意:我讨厌使用,因为他们的用户解决了我的问题,这从来都不是好事.
我一直在阅读有关在我的表格中添加蜂蜜罐字段以打击机器人/垃圾邮件的信息.唯一的问题是他们没有指南或任何从何处开始.许多网站都说要创建一个隐藏的字段,只有垃圾邮件机器人会填写.但是,由于我是新手,不知道我将在我的应用程序中从哪里开始.谁能给我关于如何设置它的建议?我想让我的Devise注册页面使用蜜罐字段.
这样我就有了一个基本的 PHP 形式的蜜罐。看起来像 ..
$honeypot = $_POST['honeypot'];
if($honeypot)
$error = "You are a bot";
else{
Run Code Online (Sandbox Code Playgroud)
并且输入蜜罐是显示:隐藏的。从技术上讲,它是有效的,已经工作了一年多,但最近垃圾邮件机器人已经开始击败它。我的猜测是,机器人意识到这是一个隐藏字段,而且我知道还有其他一些方法可以做到这一点。我可以使该字段可见但很小,与背景颜色相同,将其放置在页面之外。但我想了解其他人的经验,了解什么是最有效的。
谢谢。