需要 non-recaptcha 网站验证码检查 - javascript 在客户端浏览器上禁用 - 打击垃圾邮件订单

Need non-recaptcha captcha check for website - javascript disabled on client browsers - fight spam orders

我正在尝试弄清楚如何在不使用 Re-Captcha 的情况下在他们自己的游戏中击败机器人脚本。

我想在 PHP 中做的是确定之前的 URL 是否来自同一网站和页面 cart.php,(即 https://www.thissite.com/cart.php),因为我认为他们正在通过机器人脚本将表单提交到地址页面。

我的理论对吗?这真的有用吗?

如果之前的URL与网址不匹配,转存到google.com。可以不使用 headers 来完成此重定向吗?

在我看来,验证表单是否由机器人提交的最佳方法是使用绝对定位且远离视口的非必需表单元素。普通用户不会尝试填写此字段,而机器人会。

#robot {
  position: absolute;
  left: -9000px;
}
<form>
  <input type="text" name="firstname" placeholder="First Name" required><br /><br />
  <input type="text" name="lastname" placeholder="Last Name" required><br /><br />
  <input id="robot" type="text" name="robot">
  <input type="submit" value="Submit">
</form>

在上面的表单中,真正的用户只会看到名字和姓氏字段。他们没有理由怀疑有一个不可见的 robot 字段。相反,机器人会读取 DOM,看到命名的 <input>,并尝试填写它。

然后您可以检查您提交的表单中是否存在此字段:

if (!isset($_POST['robot'])) {
  // Legitimate submission
}
else {
  // You've caught a bot!
}

希望对您有所帮助! :)