日期:2014-05-18  浏览次数:21247 次

在线投票,如何防止重复(一个人多次)投票?
如题,要求5小时内,同一个IP只能投一次票
我用Request.ServerVariables.Get("Remote_Addr").ToString(),如果是用3G无线上网,获取的不是本机IP地址,请问大家,怎么解决这个问题?

------解决方案--------------------
cookies,IP,浏览器属性
------解决方案--------------------
这玩意除了cookie和ip限制以外,也有其他方法,不过就是麻烦,比如写个浏览器插件,记录投票者硬件信息, 不过我想楼主肯定不会为了一个投票去写个插件吧。
要防止恶意投票,一般就是需要注册登录后才能投票,你会说别人不停注册不停的投,那么就需要在注册上做限制了,比如邮箱激活,一个邮箱只能注册一次等,扯远了。。
总的来说,就是看你的投票值得这样做吗?
------解决方案--------------------
还有两个思路供参考
1. 通过activex/flash/javalet形式获取设备ID
2. 通过手机验证码来做,这个比较靠谱,成本也不高,短信猫即可
------解决方案--------------------
用硬件ID,像Mac号,硬盘ID号,手机用户的IMEI号
------解决方案--------------------
缓存、cookie