日期:2014-05-16  浏览次数:21069 次

大讨论:asp做投票系统,怎么才能预防刷票!前40位都给分,垃圾回复除外!
大讨论:asp做投票系统,怎么才能预防刷票!

比如,最初级的,IP限制,比如一天只能投一票!

但是现在IP限制那些专业刷票公司很轻易的就突破了,

再说,验证码,验证码在复杂,刷票公司也可以给你破解了,

大家有什么好的招数,大家一起讨论讨论吧!!!


前40位都给分,垃圾回复除外!
------解决方案--------------------
通过检测IP?
------解决方案--------------------
一般都是验证码和检测IP

也可以用cookie来做,投过票后,cookie保存该状态,再投先判断是否存在该cookie。

还可以建立一个表。每次投票将把投票者的IP和时间写入进去,从而判断时间来达到限制的目地
------解决方案--------------------
1.cookie可以自动清 ip可以换。如果采用对外公投的话一切皆可伪装。想要防止刷票的最好办法就是让投票不具备功利性。
2.定向投票缩小范围,生成一批验证码给指定的群体发放,在数据库中把不属于验证码范围的及重复投票过滤即可。

------解决方案--------------------
后台生成一个数字,并发送手机短信,用手机短信内容来认证
------解决方案--------------------
是同一个课程设计么,之前看到论坛有问如何根据IP得到MAC地址的
------解决方案--------------------
验证码过于简单。
可以
1.通过邮箱获取投票权--投票散列码(唯一),并记录邮箱
2.输入散列码进入投票页
3.投票,提交需输入验证码(验证码需要达到毛刺,噪音线,字体变形,字体连接)等几种特征,或者语音验证码,手机验证码,智能验证码等难度大的验证码
4.提交后根据散列码对应邮箱,一个邮箱智能投票一次。因目前各大邮箱的验证码难度系数都很大,机器注册邮箱比较困难,一定程度上可以有效防止机器投票等作弊手段
------解决方案--------------------
验证码可以再复杂点,明码+公式方式。 即多组验证码,第一组例如是 3*3 让用户写答案,第4组用中文写例如 加二减四 再根据IP,COOKIES生成唯一ID。

------解决方案--------------------
一些提供刷票服务的 你是预防不了的 他们的投票方式也是正规的投票

以前的土方法是1个人要投1000票 你可以加些措施让他没办法那么频繁的投票
现在高级的是1000人投1000票 每个人就是1票 你就防不了  IP?邮箱?COOKIES?手机? 都可以是1000人有1000种不一样 防不胜防
------解决方案--------------------
引用:
一些提供刷票服务的 你是预防不了的 他们的投票方式也是正规的投票

以前的土方法是1个人要投1000票 你可以加些措施让他没办法那么频繁的投票
现在高级的是1000人投1000票 每个人就是1票 你就防不了 IP?邮箱?COOKIES?手机? 都可以是1000人有1000种不一样 防不胜防

真实邮箱,真实手机验证,为了投票买1000个卡,似乎不大划算,申请1000个邮箱有可能但这增加了难度,大部分都会知难而退。
------解决方案--------------------
用手机短信投票
------解决方案--------------------
这要看你的投票的回报率有多大
根据回报率的大小采用相应难度的防刷票机制,让刷票的人觉得付出大于回报就可以
------解决方案--------------------
用个插件绑定MAC!
------解决方案--------------------
新浪博客的投票,前段时间有个朋友想刷票,我就试了试,如果允许匿名投票的话,也能刷票。

所以不要太费心思了,除非你卡的很严格,不是限制不了,但是考虑到易用性参与性,或者你直接和用户名绑定,但是参与的人就少了。

如果想进一步了解,欢迎加我QQ
------解决方案--------------------
<%
function getIP()
   getIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR") 
   If getIP = "" Then getIP = Request.ServerVariables("REMOTE_ADDR") 
end function

if Request.Cookies("mycookie")("userip")<>"" then
 Response.Write "<script>alert('今天已经投过了。。');history.go(-1);</script>"
 response.End()
else
 Response.Cookies("mycookie")("userip")=getIP()
 Response.Cookies("mycookie").Expires=date+30
end if
%>

将代码 放到投票页