【发布时间】:2014-09-30 21:02:49
【问题描述】:
请告诉我,这样的验证码替代方案可行吗?
基本上,如果我使用这样的东西:
<?php
$foo_x=$_POST['foo_x'];
$foo_y=$_POST['foo_y']
?>
<form action="http://foo.com/function/" method="post">
<input type="image" alt="image" src="img.jpg" name="foo"/>
</form>
所以一个真正的用户会点击一个随机的 X、Y 坐标,然后我可以将其传递给“函数”,该函数又会将用户发送到内容,除非它是一个机器人。
问题是机器人是否会转到action= 中指定的链接,是否会通过图像“点击”它,如果是这样,那么机器人会获得随机坐标还是只是“点击”确切的中心还是 0,0 坐标?或者它会直接转到链接而不触发$_POST?是否可以对机器人进行编程以“点击”此类图像上的随机点?
您知道实现这种反僵尸图像功能的更好方法吗?
谢谢!
【问题讨论】:
-
使用此方法获取坐标的唯一方法是使用 javascript。有人编写一个机器人来绕过这个并不需要太多。
-
伪造 $_POST 数据很容易。机器人不会“点击”图像,只需发送 $_POST['foo_x'] 和 $_POST['foo_y'] 值
-
@Ian input type="image" 在 $_POST 中发送 x 和 y 坐标,那么为什么要使用 Javascript?
-
为什么是 JS,伊恩? ôkio,那么您如何保护 POST 数据不被伪造呢?谢谢。
标签: php image security captcha bots