在我的网站上,我并不想使用那些扭曲的文本CAPTCHAS。所以我决定去寻找一个隐藏的现场验证码。
e.g。
<form>
<input type="text" name="surprise" value="" style="display: none; visibility: hidden;"/>
</form>
真实用户不会看到这个字段,因此他们会将其留空,垃圾邮件机器人会将其填入。然后我可以检查“惊喜”字段是否为空,如果它是空的,则继续填充。
但我现在问这种方法,我觉得它不太安全。所以你能建议吗?这样安全吗?还有其他任何CAPTCHA方法,不要求用户从图像中输入文字吗?
答案 0 :(得分:7)
你在这里有什么可能有助于阻止垃圾邮件,但它远非完整的解决方案。一个合适的CAPTCHA会让你更进一步,但根据你的需求和使用场景,你的解决方案可能就足够了。
答案 1 :(得分:5)
如果你这样做的话,我建议使用更好的spambot诱饵 为“名称”属性设置关键字,例如“城市”或“电话”,垃圾邮件可以识别并知道他们可以填写哪种文字。这将增加您的机会。
答案 2 :(得分:5)
我喜欢和其他方法一起执行此操作,例如:
首先,我们在表单字段中添加一个额外的输入:
<input class="not_in_my_house" type="password" name="password">
我将我的真实密码字段命名为“pass”
撒上一点css魔法:
.not_in_my_house {
position: absolute; /* don't bother other elements on the page */
width: 0; /* small */
height: 0; /* very small */
margin: 0; /* tiny */
padding: 0; /* very tiny */
border: 0; /* tada */
}
您也可以尝试以下方法,但我觉得这样做很脏 - 这取决于您。
.not_in_my_house {
position: absolute;
left: -9999em;
}
最后,每当提交填写了该表单字段的帖子时,您都会拒绝该请求,甚至可能禁止该IP。
if(!empty($_POST['password'])){
echo 'Nope, not in my house.';
}
答案 3 :(得分:4)
大多数现代垃圾邮件都会忽略隐藏字段。
答案 4 :(得分:2)
还有其他类型的验证码要求您回答简单的数学问题,或其他要求您解决简单的单词拼图的问题。主要目的是区分计算机和人。所以你可以尝试很多想法。另一个可能是:向用户显示几个不同的颜色框,并要求他们点击蓝色。他们都有不同程度的安全性和不同的利弊,只有你知道你的情况
答案 5 :(得分:2)
机器人将填补隐藏的字段。但是你应该使用css文件隐藏它,在输入HTML中执行它仍然可以检测它是否是隐藏字段。