APP下载

网络投票防刷票技术探讨

2018-11-29肖卓明陈宁

科技与创新 2018年20期
关键词:IP地址客户端软件

肖卓明,陈宁



网络投票防刷票技术探讨

肖卓明1,陈宁2

(1.南方报业传媒集团,广东 广州 510601;2.广东省妇幼保健院,广东 广州 510010)

随着互联网技术的飞速发展以及移动社交软件的风靡,越来越多的组织通过网络投票来进行评选活动。互联网投票作为一种开放的投票形式,具备传统投票模式所不具备的独特优势。同时,由于互联网的开放性,在线投票更容易受到不可预知问题的影响,而刷票行为更是困扰互联网投票的一个重要问题。恶意刷票可以对投票结果产生决定性的影响,左右真实的投票结果。如何抑制刷票、维护投票的公正公平,是众多投票组织者迫切关心的问题。试图对网络投票刷票、防刷票技术进行分析,抛砖引玉供大家在实际应用中参考。

网络投票;网络刷票;防刷票技术;非技术手段

1 概述

随着互联网技术的飞速发展以及移动社交软件的风靡,越来越多的组织通过网络投票来进行评选。网络投票因其广泛性、智能性、灵活性、覆盖面广、影响力大、成本低以及不受时间和地域限制等独特优势,而越来越受到评选组织者的欢迎。网络投票流行的同时,也催生了另一块互联网业务——网络刷票。各种评选活动通过网络投票实现,评选各方也越来越重视网络投票的结果。网络刷票逐步呈现出公司化、组织化的特点,越来越让人防不胜防。网络刷票让各式各样网络评选活动的公平性、公正性受到很大的质疑。更有甚者,频繁的刷票行为可以直接使投票服务器达到并发上限而导致正常的投票行为不能开展。如何将刷票的影响控制在最小范围内,是网络投票主办方急需解决的问题。通过技术手段,提高刷票成本,可以在一定程度上控制刷票的影响范围。投票与刷票,刷票与防刷票,就像两对冤家。在相关利益的驱动下,有投票就必然有刷票,有刷票必然会推动防刷票技术发展。防刷票,主要是通过技术手段来限制每个用户的投票数,控制用户的重复投票行为,尽量使投票处于一种相对公平公正的环境中。

2 网络投票刷票手段简述

网络刷票分为人工刷票和程序刷票。人工刷票单从技术角度来防范基本上无法实现,因为人工刷票就是真实的人在投票,没有办法区别哪些是正常投票哪些是人工刷票,所以我们仅对利用程序刷票的行为进行探讨。

程序刷票最初是通过抓包工具,抓取投票页面URL,分析请求的参数,然后通过编写脚本程序,模拟正常的请求,自动批量发送投票请求。投票系统做了IP限制和单用户请求频次限制后,模拟自动批量发送投票请求失效,这时刷票机构可以通过一批肉机,或通过动态代理工具,伪造不同的IP请求,绕过系统限制。更高级别的刷票系统可以模拟用户注册、登录、浏览、投票等操作,最大程度上让投票系统认为这是真实的用户操作,从而达到刷票的目的。

刷票行为让各种网络评选的公平公正受到质疑,防刷票技术手段主要有以下几种。

3 防刷票技术分析

3.1 Cookie限制

Cookie是保存在客户端的用户信息,在浏览器首次访问服务器时由服务器创建并发给客户端,浏览器收到Cookie后会根据Cookie时效,选择将Cookie内容保存在内存或硬盘,当浏览器再次访问服务器时会在请求中携带之前的Cookie.Cookie机制是在客户端保持状态的方案,在实际应用中,可以对用户的每次投票进行Cookie记录,再次投票时检测发现Cookie中已经存在投票记录则禁止投票。由于Cookie信息保存于客户端之中,所以只要在客户端清除掉Cookie信息,或在客户端伪造Cookie信息,则又可以绕过这种限制进行刷票。该方法只能限制极少数人进行刷票,无法应用在安全性要求比较高的场合。

3.2 Session验证

Session 是保存在服务端的用户信息,服务器为每个会话创建一个Session,Session里面可以保存用户信息,通过以Cookie的方式发送Session ID 给客户端作为标识来识别用户。Session机制采用的是在服务器端保持状态的方案,客户端无法篡改Session变量,所以可以利用Session设置变量记录是否投过票,投票时先检查Session变量,从而达到防刷票的目的。但是关闭浏览器,Session就会被销毁,客户端禁用Cookie,Session也会失效。所以,用户只要不断启动多个浏览器窗口即可进行多次投票,或者直接用定制软件发送http请求进行刷票。

3.3 IP地址验证

这是使用比较广泛的一种刷票限制方式,通过获取并记录投票用户的IP地址,用户投票时先对客户端IP地址进行对比判断,根据IP地址是否重合来限制其在一段时间内所能投票的票数。同时,IP限制也可用于投票地区限制,通过匹配IP地区来限制只有在某个地区的用户才能投票。这个方法可以很好地限制那些正常访问投票的用户,但是对于ADSL用户来说,可以通过断线重拨来更换IP地址。另外,使用代理访问的用户,由于无法获取其真实的IP地址,只能获得代理服务器的IP地址,所以如果利用动态代理工具,可以更加轻松地绕过这一限制。

3.4 注册用户投票限制

限制游客的投票权限,每个用户必须注册了账户登录后才能进行投票,并通过限制每个账户ID的投票数来减少刷票。同时可以限制初始注册用户,注册一段时间后才可以参与投票,还可以通过限制用户注册数量来进一步进行限制。也可以通过设置注册用户时的复杂度来加大刷票的难度,例如注册用户时加入手机短信验证码等。

3.5 验证码

针对刷票软件,投票时增加文字验证码、图片验证码、问题验证码、手机短信验证码、Email验证码、滑块验证等,可以通过验证码复杂度和识别难度的控制来过滤一部分刷票机,从而减少刷票的发生。比如12306的图形验证码,就是该方法的其中一种应用模式。验证码的使用同时也加大了正常用户的投票难度,而且刷票频繁访问验证码,也会加大服务器负担。

3.6 投票码/排号系统

每次投票前,用户都需要在其他页面或是邮箱先获取一个唯一的投票码,使用一次后即作废。同一用户再次进行投票时,只要验证该用户是否已经获取过投票码,即可对重复投票进行限制。这种方法可以极大程度上降低刷票软件的有效性。

3.7 WAF(Web应用防火墙)

Web应用防火墙(简称“WAF”)本来应用于Web服务器安全,因为刷票行为与网络攻击存在一定相似性,所以利用WAF也可以在一定程度上抑制刷票行为。利用WAF的访问控制、反向代理、增强输入验证、状态管理、异常检测等模块,通过适当的规则配置,可以过滤掉那些不符合正常规则的投票请求,达到过滤刷票请求的目的。

3.8 服务端接口保护

通过抓包软件,可以获取投票系统的投票接口,进而通过反复调用投票接口来实现刷票。因此,对投票接口的保护,可以给投票接口增加随机参数,每个随机参数使用过后即作废,过滤掉简单的重复调用,增加刷票的难度。

3.9 MAC地址限制

MAC网卡的物理地址是唯一的,通过网卡的MAC地址在服务器端进行投票限制,也是一种可行的办法。但是现在大多数网络投票都是基于Web开发的,作为Web程序很难获取真实的MAC地址,因为读取客户端MAC时,读取的是存储于注册表的一个信息,它是可以修改的,很多软件都能够制造伪MAC地址,所以MAC地址限制也是可以破解的。

3.10 微信投票防刷票

最近几年,随着微信用户数的不断增长,越来越多的网络投票基于微信开发平台来实现,而微信平台的社交属性可以让网络投票得到更大范围传播。基于微信开发平台的网络投票同样面临刷票问题,基于微信开发平台的防刷票技术又有其独特性:①Openid验证。Openid是加密后的微信号,每个用户对每个公众号的Openid是唯一的,可以通过Openid来判断一个用户是否已经投过票,以此来限制同一个微信用户重复投票。②限制关注公众号才能投票。在投票时通过微信接口先判断用户有没有关注公众号,没有关注则跳转至关注页面,此方法可以防止没有关注公众号的“僵尸用户”刷票。③判断上一级页面。通过http请求header中的referer变量,判断投票操作的上级页面,可以防止直接发送请求来进行投票的部分自动投票软件。④判断是否在微信客户端上操作。通过请求头部信息中的agent变量来判断是否在微信客户端中打开投票页面。拒绝非微信客户端上的请求,以防止部分自动投票软件。

4 结语

道高一尺,魔高一丈。在网络刷票已呈公司化、组织化运作的背景下,仅凭技术手段基本上没有办法杜绝刷票行为,利用技术限制虽然可以限制一些刷票软件的使用,却无法避免人工刷票行为。但是提高刷票成本,从另一个角度来看,也可以降低刷票意愿。通过开放投票时间段、降低网络投票权重等非技术手段,结合防刷票技术将刷票行为的影响降到最低,也许是网络投票活动中的最优解决方案。

[1]吴三柱.在线投票系统中防刷票技术研究[J].价值工程,2018,37(22):203-204.

[2]张国钦.网络投票系统中防刷票功能的设计与实现[J].福建电脑,2016,32(12):102,132.

2095-6835(2018)20-0064-02

TP393.09

A

10.15913/j.cnki.kjycx.2018.20.064

肖卓明(1981—),男,研究方向为数据库设计、网络应用。陈宁(1981—),男,研究方向为网络信息安全。

〔编辑:严丽琴〕

猜你喜欢

IP地址客户端软件
你的手机安装了多少个客户端
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
禅宗软件
工业软件 自主创新
公安网络中IP地址智能管理的研究与思考
媒体客户端的发展策略与推广模式
即时通讯软件WhatsApp
《IP地址及其管理》教学设计
新华社推出新版客户端 打造移动互联新闻旗舰
计算机的网络身份IP地址