微信防刷票限制


一、判斷上一級頁面

通過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地址為某一地域,僅適用於地區性的投票。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM