APP里有一个功能是用户上传图片以后,让其他人来投票,最后得票最多的可以得到某种奖励。最近发现了几次刷票的情况,本文总结一下处理的方法
<!--more-->
投票无需登录
基本的规则是投票无需登录,因为如果需要登录了才能投票的话,会影响活动的传播效率。所以规则设置为任何人都可以投票,这就给拉票行为留下了隐患
相反,如果限制登录才能投的话,刷票就很困难了,服务端可以很容易地控制刷票行为
在服务端控制的方案
所以既然不能用account_id这个天然的唯一标识,就需要找到另一个可以唯一标识终端的标记
在app里可以用IDFA或者device_id作为唯一标识。同时我们也提供了web版的拉票页面,可以考虑用cookie来作为唯一标识,虽然不太稳定,也可以基本上达到目的
在客户端控制的方案
另一种方案是在客户端做控制,每次客户端投票以后,都把投过的票的id记下来,然后屏蔽掉重复操作
在app里可以用文件保存住,web里也可以用local storage实现。全过程不需要服务端参与,是一个比较理想的方案
缺点是local storage有一定的兼容性问题,在比较老的android手机上会有问题。另外如果服务端的接口完全不做保护的话,的人可以通过直接调接口的方式,绕过客户端逻辑实现刷票
给服务端接口增加保护
通过上述的方法,基本上可以保证通过客户端正常操作的用户无法刷票,但是无法应对直接调用接口的场景,所以还需要对接口本身进行保护
有一种方法是给接口增加2个参数,random和key,调用的URL类似:
http://api.xxx.com/vapi/vote?random=111&key=222
random是某种随机数,比如跟时间相关的随机数,然后根据某种算法,可以从random算出key。这种算法在客户端和服务端是一致的,这样接口每次被调用的时候,可以检查一下random和key是否正确,拒绝掉错误的请求
通过这种保护,基本上可以过滤掉简单的重复调用。当然也不是绝对安全的,因为这个算法在客户端,特别是web里,从javascript里就可以分析得到
其它的保护比较针对IP的保护,针对agent的保护等等,类似一些反爬虫的策略,本文就不继续展开了
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
就目前而言着实是没有一个完美的解决方案。现行的所有机制其实都只是做到了“防君子不防小人”。刷票分为两个大类:一类是人为主体,通过人力去刷票。另一种更为可怕,通过
项目介绍: ...在界面上有一个表格,显示了各位老师的编号、姓名、得票数;其中,得票数显示为一个红色的进度条,并显示得票的数值;...(3)进一步思考,考虑系统是否存在刷票的隐患,如何防止刷票。
一贝投票系统 v6.8 (防刷票版).zip
网络投票防刷票分析 来源:八方刷票公司 http://www.8fvote.com公司举办了个晒照片的活动,活动内容大致就是每个人可以发照片,然后别人可以对照片
一贝图片投票系统 v6.7 (防刷票版).zip
基于PHP的一贝php图片投票管理系统 (防刷票版).zip
基于PHP的一贝php图片投票管理系统(防刷票版)源码.zip
PHP实例开发源码—一贝php图片投票管理系统 (防刷票版).zip
主要是算法思想。程序不完整、下载请郑重。主要算法思想:根据每天投票次数设定,统计历史投票判定能否投票、加密投票对象的ID、加密IP传输参数、对投票区间数据统计、时间戳判定等主要是防止一般的机器刷票行为。
教育精品资料
刷票行为,一直是一个难题,无法从根本上解决问题,目前最好的解决办法就是通过人为增加的逻辑限制,下面给大家介绍基于PHP给大家讲解防刷票的一些技巧,小伙伴们跟着脚本之家的小编一起学习吧
目前来说,PHP防止刷票的判断没有太可行和完全防止的方法,需要的朋友可以参考下
5如何防范羊毛党刷票
一个很简单的ASP评选系统,整个系统仅一个文件,实现了数据维护、投票、排名、刷票分析等功能...本程序应对刷票的能力较强,服务器应该很难被刷得宕机,防刷票策略也增加了刷票者的刷票难度。欢迎大家交流防刷票心得。
在Web开发中,投票模块会经常出现。这样就使得防止刷票,成了至关重要的技术。以下是试验过或者网上找到的防止刷票方法
博客《 刷票大战(三)——C#自动POST数据》所对应源码,原文地址:http://blog.csdn.net/harvic880925/article/details/30246651
独创的防刷票机制,接受各刷票高手刷票1.采用了国内首创的随机投票地址,随机加密的URL参数,有效杜绝机器刷票2.每个投票的加密ID只使用一次,有效防止机器刷票3.超强的share object身份验证机制(比COOKIES强百倍),...
独创的防刷票机制,接受各刷票高手刷票。代码是加密的,没有开源! 一贝在线图片投票系统 6.8 build 20110905 升级内容: 1.自定义选手属性(字段) 2.自定义展示图片的大小 3.增加了短信投票的开关 4.页面的...
本程序应对刷票的能力较强,服务器应该很难被刷得宕机,防刷票策略也增加了刷票者的刷票难度。欢迎大家交流防刷票心得。 相关说明: 投票时免验证码输入,是绝大多数投票用户的强烈要求。 通过代理上网的网友...