【小镇最近做的感动南通的投票活动目前有大概40w左右的投票记录,小镇通过筛选和排查,发现3000多条有刷票嫌疑的记录,虽然说这些记录对于总的投票活动来说基本上是九牛一毛,但是这触及了程序猿的底线,你能刷票,就证明我的代码有问题,小镇必须排查和完善】
【虽然说通过验证码机制可以很好的防止刷票,但是如果有了验证码,谁还愿意投票?本来点一下就可以投票的事情硬要输入无聊的4个字符实乃是丢失参与度的最好方法哈哈,因为有微信网页授权的验证机制,所以刷票不是非常容易就能实现的。小镇这次来自己模仿一下如何刷票和反刷票。】
1、小镇来刷票!
首先打开投票的网页,咱可以看到下方的我要投票按钮,点开浏览器的F12查看该按钮的代码,如下图所示:
【在这里,我们可以看到“我要投票”按钮的id是woyaotoupiao,那么就在js的文件中查找关于woyaotoupiao这个id的相关点击事件,好,我们在下面找到了相应的代码,如下图所示:】
我们可以看到事件中是按钮的点击事件向toupiaoPHP.php文件发送了异步的post请求,其中的参数携带了uid,openid,和selfopenid。
【明眼人一眼就看到了刷票的希望,对啊,反正只要向这个php文件发送post请求就可以刷票了,至于toupiaoPHP.php文件里面的验证机制咱可以慢慢猜,但是只通过这三个参数的可伪造性和不固定性就可以随便刷啦!!】
这个发POST请求的不用小镇教了吧。。基础中的基础,用php中的curl函数。然后携带参数就行啦,反正给个示例代码大家看看就行啦。
这里我们定义个要发送的数组对吧。