PHP 实例 - AJAX 投票


AJAX 投票

在下面的实例中,我们将演示一个投票程序,通过它,投票结果在网页不进行刷新的情况下被显示。

2 篇笔记 写笔记

  1. #2

       学神之女

      dff***j@qq.com

    27

    这很不安全!攻击者能用简短的代码攻破!

    //无限循环脚本
    var Vote = 0;//你的票。
    setInterval(function(){
        getVote(Vote);
    },2000);

    怎样更安全?可以用 Cookies 记录下投票,这样攻击者还需清理 Cookies。

    if(empty($_COOKIE["voted"])) {
        setcookie("voted","yes!",ime()+60*60*24*365);
    } else {
        die("您已经投过票!");
    }
    学神之女

       学神之女

      dff***j@qq.com

    2年前 (2018-05-08)
  2. #1

       现在网

      che***nzho@aliyun.com

    5

    实名反对 @学神之女 :“怎样更安全?可以用 Cookies 记录下投票,这样攻击者还需清理 Cookies。”

    这样其实也并不可取,我只要永远不携带 Cookie,我永远都能够提交进行刷票,就像这样:

    <?php
    //根据浏览器抓包得知,投票地址是如下:
    $api_url = "https://www.runoob.com/try/demo_source/poll_vote.php?vote=0";
    
    for($i=0; $i<1000; $i++){
      //循环 1000 次用 file_get_contents 函数访问 投票地址 进行刷票
      file_get_contents($api_url);
    }
    

    如果要抵制还是需要限制 IP + 需要携带Cookie

    或者使用需要用户登录才能投票,可以是接入微信登录,让用户微信登陆后才能进行投票

    现在网

       现在网

      che***nzho@aliyun.com

    1个月前 (02-05)