zoukankan      html  css  js  c++  java
  • 微信防刷票限制

    一、判断上一级页面

    通过http请求header中的refere,来判断投票操作的上级页面,可以防止直接发送请求来进行投票的部分自动投票软件。

    /**
    * 判断上一级页面
    */
    if(!strpos($_SERVER['HTTP_REFERER'],'http://www.rainbowz.com/vote.php/Vote/index.html')){
    $this->ajaxReturn("请从投票页面进入投票!");
    }

    二、判断是否在微信上操作

    通过请求头部信息中的agent来判断打开的客户端。

    /**
    * 判断客户端信息
    */
    if(!strpos($_SERVER['HTTP_USER_AGENT'],'MicroMessenger')){
    $this->ajaxReturn("请在微信上进行投票!");
    }

    三、验证码

    在投票的页面上添加验证码信息并加密,传递给后台,判断验证码是否一致。

    1、在html中

    <script type="text/javascript">

    /**
    * 请求验证码设置
    */
    <?php
    if(!isset($_SESSION['_chek_code'])){
    $_SESSION['_chek_code']=$string.uuid();
    }
    ?>

    var _chek_code='<?php echo $_SESSION['_chek_code']; ?>';

    </script>

    2、在js中的投票方法中

    function vote(){

    /**
    * 验证码
    */
    var _check_code_salt='gzh@#$+==###7076**%$#';

    var data={checkCode:$.md5(_chek_code+_check_code_salt)};
    var url = './insertSingleVoteInfo';

    $.ajax({
    type: "POST",
    url:url,
    data:data,
    success: function(dataMsg){

    },
    error:function(){

    }
    });

    }

    3、在后台controller中

    /**
    * 验证码
    */
    $page_code=$_POST['checkCode'];
    $_check_code_salt='gzh@#$+==###7076**%$#';
    $server_code=md5($_SESSION['_chek_code'].$_check_code_salt);
    if($page_code!==$server_code){
    $this->ajaxReturn("验证码错误,请手动投票!");
    // $this->ajaxReturn($server_code);
    }

    四、关注公众号方可投票

    如果可以,微信用户验证的时候加上关注后方可投票也可判断用户的信息真伪

    五、地域限制

    通过获取IP来限制参与投票的用户IP地址为某一地域,仅适用于地区性的投票。

  • 相关阅读:
    11、python+selenium绕过验证码登录
    12、js处理web页面滚动条
    5、Frame和iframe框架定位
    2、常用的8种元素定位方法
    1、selenium环境搭建与浏览器基本操作
    python之logging模块
    Python数据驱动工具——DDT
    python利用session保持登录状态
    python利用Excel读取和存储测试数据完成接口自动化
    python利用openpyxl库操作Excel来读取、修改、写入测试数据
  • 原文地址:https://www.cnblogs.com/rainbowz/p/7410524.html
Copyright © 2011-2022 走看看