我试图弄清楚如何在不使用 Re-Captcha 的情况下在他们自己的游戏中击败机器人脚本。
我想在 PHP 中做的是确定以前的 URL 是否来自同一个网站和页面 cart.php,(即https://www.thissite.com/cart.php),因为我认为他们通过提交表单机器人脚本进入地址页面。
我的理论对吗?这真的会奏效吗?
如果之前的 URL 与网站地址不匹配,请将它们转储到 google.com。可以在不使用标头的情况下完成此重定向吗?
我试图弄清楚如何在不使用 Re-Captcha 的情况下在他们自己的游戏中击败机器人脚本。
我想在 PHP 中做的是确定以前的 URL 是否来自同一个网站和页面 cart.php,(即https://www.thissite.com/cart.php),因为我认为他们通过提交表单机器人脚本进入地址页面。
我的理论对吗?这真的会奏效吗?
如果之前的 URL 与网站地址不匹配,请将它们转储到 google.com。可以在不使用标头的情况下完成此重定向吗?
在我看来,验证表单是否由机器人提交的最佳方法是拥有一个绝对定位且远离视口的非必需表单元素。普通用户不会尝试填写此字段,而机器人会。
#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!
}
希望这可以帮助!:)