常见的刷票技术手段:
1、针对微信投票活动无法校验OpenID真实性的漏洞,可以先使用一个微信账号进行一次投票操作,利用这次操作来获取相关的网络数据 。这个数据中会包含POST请求的参数以及内容 。然后通过脚本,比如Fiddler或者Python都可以,来自己构建一个POST的请求,该请求中参数和内容保证与获取到的真实数据一致,然后按照真实OpenID的格式随机生成OpenID,需要刷多少票数就进行多少次POST请求,便可以实现简单的刷票操作了 。
2、对于有IP限制的微信投票活动,可以使用CURL来伪造IP地址,这样就可以制造多个IP来刷票了 。
二、 常见的防止刷票方法1、 只有关注了公众号才能投票
在服务调用获取用户基础信息
API接口会返回以下数据:
当用户投票且未关注时,我们可根据subscribe是0还是1判断有没有关注,若没有关注则转至公众号的二维码页面并提示用户先长按二维码关注公众号 。此方法的漏洞就是每次投票都要与微信服务器进行交互 。
2、 判断refer和User-Agent
以下为一个request header的部分参数示例:
Referer为上一个访问的页面,所以refer必须要为投票的页面地址 。User-Agent里面必须有关键词MicroMessenger
3、限制客户端投票次数
用ip当成同一个ip投票次数受限制,由于很多时候使用nginx或apache之类的代理服务器,因此直接使用HttpServletRequest的getRemoteAddr()很多时候取得的是代理服务器的ip,而我们要取得的是真实的ip址 。下面是一个获取真实ip的示例代码
4、当投票量大于阅读量时就是刷票行为
存储页面阅读量,投票完成后,计算票数若投票量大于阅读量时就是刷票行为 。
5、在提交表单数据的地方使用校验码
服务端返回一个校验码,在dom初始化的时候页面使用js加密这个校验码,commit的时候提交这个加密的校验码,服务端再判断这个加密码的校验码是否正确 。校验码设置使用N次后就作废 。
以下为伪代码
服务端处理:
四、 微信刷票软件常见的实现方法
1、利用fiddler抓包 实现微信投票(原理是利用OpenID真实性的漏洞)
第一步:首先在电脑上下载微信软件
一般微信投票都需要关注公众号才能投票,所以必须用电脑微信打开链接进入投票界面 下载好之后,打开微信登录微信帐号 。然后把投票网址复制粘贴发送到文件传输助手,这时先不要打开 。
第二步:下载并安装且打开抓包软件fiddler
第三步:现在回到微信打开刚才要投票的网址,这时开启抓包
第四步:通过我们刚才在微信里投票的过程,下边我们来看下fiddler里的情况
出现了这些数据,需要对这些数据进行分析 。找到哪个才是我们投票的数据
最后经过分析,找到了这些数据
推荐阅读
- word文档软件 免费好用的word软件
- caj文件用什么软件打开 手机端caj阅读器
- 线切割软件好用吗 线切割编程教学
- 广告拦截软件 手机上的广告拦截神器
- 电池修复软件推荐 一键修复电池APP
- 模拟钢琴软件有哪些 手机弹钢琴的软件
- pdf编辑器哪个是免费的 免费可编辑的pdf软件
- ico图标文件怎么制作 ico图标在线转换
- 合并视频的软件 视频合成神器
- 录歌用什么软件好 一键修音的唱歌软件