防止刷票的一些方法介绍

在Web开发中,投票模块会常常出现。这样就使得防止刷票,成了相当重要的技术。如下是试验过或者网上找到的防止刷票方法:php

1. IP限制

这是使用的最多,也是最普遍,不可少的刷票限制。并且因为专题都没有用户模块,使得这个方法,几乎成了惟一可行的手段。该方式,经过获取访问游客的IP地址,来限制其在一段时间内所能使用的票数。固然,正常访问页面投票的游客,确定都能很好的被这个手段所限制,可是,各类投票的活动和专题,以及丰厚的奖品,使得一些人千方百计的想要进行刷票。web

  • ADSL用户,能够经过断线重拨来更换IP地址。 浏览器

  • 使用代理访问的用户,咱们也没法得到其真实的IP地址。 服务器

  • 还有咱们未知的刷票工具。 cookie

以上都是咱们没有办法克服的难题,并且对于网吧/内网用户来讲,这样的设置也会显得不够公平。session

2. Cookies 验证

这也是网上所用到较多的手段,不过,全部来自于客户端的信息和内容都是不可靠的。熟知cookies原理的人,就能够很容易的绕过限制。ide

  • cookies 能够禁用。 工具

  • 使用代理访问的用户,咱们也没法得到其真实的IP地址。 测试

  • Cookies能够随意清除、修改。 网站

3. Session 验证

session会给全部访问的游客,指定一个惟一的sessionID。这样,彷佛对于防止刷票有一些做用。惋惜session有致命的缺点。

  • 关闭浏览器,session就会被销毁。

  • 客户端禁用cookies,session也会失效。

4. 验证码

注册,登录,回复,发帖……验证码使用的范围很广,不少。惋惜,至于具体效果呢,长久下来,只发现这样的方式,其实只是加大了普通游客的投票难度,并且刷票频繁的访问验证码,也大大加大了服务器负担。

有一种验证码是可行的,google推出的图形验证码,旨在让用户将图片翻转至正确的方向,方可完成验证。想必不多有软件或者电脑操做能够很好的绕过这样的验证码。不过,缺点呢,实现难度很高。

5. MAC地址限制

做为web程序,很难获取真实的Mac地址(我用php/js实验过,并无成功的获取到Mac地址)。当咱们读取客户端Mac地址时,读取的也是存储于注册表的一个信息,它也是能够进行修改的。

6. 用户模块

这应该算颇有用的方式。每一个游客,必须注册了帐户才能进行投票,经过限制帐户ID来限制投票,而且能够限制初始注册用户,一段时间内不能参与投票。并且,真有大量的注册用户涌入,也能够增长网站的流量。但是,对于小地区网站来讲,这样会让网友以为很麻烦,可能放弃投票,从而可能流失网站的用户。

7. 行为记录

其实,不少刷票行为咱们是没办法进行限制的。但是有时候,咱们却能够很好的记录下来。并且当检测到非正常投票的时候,自动提出票数,要么返回投票成功的假象,也能够很好的限制刷票。

缺点就是,记录过多的数据,会让服务器压力很大。并且,若是记录行为的记录点不够多,不够复杂,也可能被刷票的专业户所参透。

8. 回答问题

第一次使用这个方式限制刷票的时候,咱们很欣慰的看到了不错的效果。惋惜,若是没有足够海量的题库,很快问题的内容和答案就会被收集。反而让正常投票的用户,以为投票很恶心、麻烦,产生厌恶心理。渐渐的也被咱们抛弃了。

9. 随机投票地址

该方法, 让每个访问页面的用户获得一个随机惟一的KEY,经过这个KEY,生成一个投票地址,该地址只能访问一次,使用事后便做废。

惋惜,指定的KEY的内容,我目前是采用的sessionid+ip+随机数 生成的MD5码,而sessionid和ip在上面的内容都提到,是能够销毁和篡改的。这样的方式,也不过是在ip限制和session限制无效时候的垂死挣扎。

10. 填写信息

投票时,让游客填写×××,姓名,手机号码等能够表示一我的身份的信息,来进行惟一性验证。不过,×××你知道格式,姓名随便填,手机号码随便填写,也是没办法限制的。反而让正常投票的人以为麻烦。

11. 投票码/排号系统

投票前,用户都须要在其余页面/邮箱先获取到一个惟一投票的编码/卷,使用一次做废。不过,如何验证‘人’的惟一呢,若是有用户,他的邮箱足够多,是否是就能够无限获取投票码呢。

对!因此,这也只是治标不治本的方法了。不过,至少,这个方式也会让刷票的人以为很麻烦。可是同时,也会让正常投票的人以为不方便。不过,可以让刷票党,刷得不是那么痛快,也算是有用了。

12. 人民币投票

虎,这样最好,不论是发短信,打电话,仍是支付宝,一票一元人民币,你若是是足够舍得,固然,随便你投,随便你刷,咱也乐意不是。经过支付接口的结合,做弊是至关难的了。

不过,公平性有待考究,毕竟不是全部人的支持者都有钱,都舍得花钱,可能让好的做品由于‘穷’而得不到票数,这是在咱公平、民主的社会中,是不提倡的!

好了,差很少就以上这些方式。引用一个网友的原文:“要想彻底杜绝刷票,基本只能靠人”。

抛砖引玉:

  • flash投票,不过不是很清楚原理,有空的时候会投入测试。

  • 插件。 web插件,可能须要用户下载安装,普通用户会以为很麻烦,可行性有待考究。

  • 一些有趣的设置 例如,短期内的屡次投票,可能致使投票数降低;能够给做品投负票数,不过有必定概率无效或者反射到其余做品;相似农场的‘偷菜’,咱们能够投票等。也许能够增长一点可玩性,但是公平性就没法保证了。

总结:我的以为目前最有效的只能是人民币投票了,能够很好的限制刷票行为。

相关文章
相关标签/搜索