0

我知道在使用刷新按钮时如何防止重新发送数据有很多答案。但是,如果我想确保数据也不是来自机器人,我该怎么办?

当然,我不能确保它不是从机器人发送的,但我的意思是操纵数字。

我有一个小脚本,您可以在其中为 A 或 B 投票,每次您投票 A 和 B 时都会有所不同,但如果您对帖子数据进行验证,您可以随着时间的推移重新发送。有没有办法解决这个问题而无需将前两个选项中的数据保存到数据库或文件中?我应该为此使用一个会话,我认为这也不安全吗?我认为,我必须使用服务器上的 previeus 选项保存 IP。或者设置一个 5 秒的唯一令牌,就像一个秘密密钥,它与 post 一起发送并且只允许一次。

我希望你明白我的意思,我尽力把它写清楚。

4

2 回答 2

1

It seems like you are using a CAPTCHA mechanism. To avoid the reuse of a CAPTCHA token, you should invalidate the token right after its verification even if the token is invalid.

$token = $_SESSION['captcha_token'];
unset($_SESSION['captcha_token']); //Avoid reuse

if($_POST['token'] === $token) {
    //Do something
    [...]
}
于 2013-11-12T00:35:03.773 回答
0

您需要在第一次收到验证码后使验证码过期。

于 2013-11-13T16:05:37.517 回答