如何设计一套较完善的网络投票系统

那么怎样的投票系统能比较有效的杜绝人为作弊呢,作者认为应该从以下几个方面去考虑:

一、采取有效的IP限制,一个IP只能投一票。
目前网络上绝大部分的投票活动都是一个IP一天可以投一票,少数没有IP限制(采取客户端Cookie限制的也属于没有IP限制),极个别的才是一个IP只能投一票。
如果不是为了增加投票网站的流量或点击率,作者认为投票活动应该采取严格的IP限制,一个IP参与一次足够了,不需要重复投票。
在获取客户端IP方面,应取消使用HTTP_X_FORWARDED_FOR,因为HTTP头的"X_FORWARDED_FOR"属性很容易伪造客户端IP地址,个人认为还是只支持REMOTE_ADDR比较好。

二、加入验证码。
验证码能比较有效的杜绝网络机器人,在一些注册、登录界面中我们经常可以看到。网络投票活动中,也应该加入验证码,以防止使用投票软件作弊。但是作者不推荐使用中文验证码,为方便投票网民的录入,只要英文、数字就行了,随机变形、旋转,这样也很难被软件识别。如下图:

三、投票数据每次提交都不一样。
如果每次投票数据都不一样,那就很难使用软件发送固定数据包了。

四、多级跳转,并使投票网址动态变化。
这样做的好处就是使投票目的网址能不断变化,用软件向固定地址发送数据包就没有意义了。

五、要求在投票页面停留一段时间后才能投票。
比如,必须访问投票页面3分钟后投票才有效,但是这个时间不能使用客户端脚本(VBScript、JavaScript)来限制,使用Session验证才有实际意义。

六、设定每天投票数量上限。
估算投票网站的流量,制定一个每天投票数量的上限,如一天最多只能为一个投票对象投1000票,超出的不记录。

七、设定投票最短时间间隔。
为了防止对某个投票对象的集中投票,可以限定1分钟之内不能对同一个投票对象投票,即使更换IP也不可以。

八、其他方法。
1、如可以根据投票速度设置一个反转开关,当速度到达多少票/分钟时,每投一票票数减一。
2、不反馈投票成功或失败的信息,票数不公开或不实时更新。
3、回答一些有关投票的验证问题等。

 

来源:http://hi.baidu.com/zqgm0412/blog/item/07f23bd36331aa33960a1647.html

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值