【问题标题】:Prevent resending of form data (POST) and POST sending from bots防止重新发送表单数据 (POST) 和从机器人发送 POST
【发布时间】:2013-11-23 22:52:06
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: php forms security post bots


    【解决方案1】:

    您似乎正在使用 CAPTCHA 机制。为避免重复使用 CAPTCHA 令牌,即使令牌无效,您也应在验证后立即使令牌无效。

    $token = $_SESSION['captcha_token'];
    unset($_SESSION['captcha_token']); //Avoid reuse
    
    if($_POST['token'] === $token) {
        //Do something
        [...]
    }
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-03
        • 2011-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多