我们分为2种情况

1 无记名投票 2 记名投票

我们先看第一种: 1 限制IP 由于许多用户在局域网内,那么对外的IP将是一个,所以这个方法如果采用,虽然可以从极大的程度减少刷票,你能换的IP毕竟是少数,一个小段也就250多个能用,但是其负面效果是很强的,许多用户将看到【您已经投票,请不要重复投票】的警告。我想组织者不想看到这个结果。

2 cookie记录 这个对于浏览器还是有一定的效果的,还是应该加上。 但是那些想刷票的人来说,清除cookie对他们来说没啥作用,属于【防君子,不防小人】的。对于防止刷票,没有任何作用。

3 session 记录 这个从原理上讲与cookie是相同的,所以不再讨论。

4 验证码 这个的作用不言而喻,增加了刷票的难度。个人认为这个是最可行,也是效果最好的一个。虽然听说过某些人发动几百人,甚至几千人进行集体刷票,但那是人性问题,不属于技术问题能解决的。我看还不如收买做程序的,直接修改计数器来的干错(就来个7倍加速好了)。

5 短信投票(或其它任何付费的方式) 从效益上考虑,我想你喜欢他们刷票。而我们可以很简单的对电话号码进行控制,你换电话?欢迎啊!!呵呵!!

小结: 单纯从技术上讲,无记名投票是不能杜绝刷票的,只能尽可能增加刷票的成本,包括时间成本和财富成本。

下面讨论记名投票 1 限制注册用户能投票的次数 这个在数据库进行控制就行了,类似短信投票。

2 注册验证码 防止用户大量注册多个用户,增加其时间成本。

3 限制IP 一个IP在一定时间内,最多允许注册的用户数。

4 实名制 此方法能最大程度保证投票真实性,但可行性却最低。 我不投了。。。。。

小结:

记名投票可以解决session和cookie等不记名投票带来的问题。验证码同样增加其投票成本。

总结:

如果是娱乐形式的,无记名的还是不错的。 对于评选形式的,我更倾向于记名投票。但无论哪种,都无法从技术上解决重复刷票问题。