Bo *_*nes 32 session web-applications
首先,我尽可能地搜索并阅读所有似乎相关的SO问题,但没有具体回答这个问题.这不是重复的,不是重复的.
显然,如果允许在网站上进行匿名投票,则没有万无一失的方法可以阻止某人多次投票.
但是,我想知道有经验的人是否可以帮助我提出一个相当可靠的方法来跟踪绝对独特的访问者并记录对这些凭据的投票.
目前我确保每个项目/会话组合只允许一个投票,但是通过重新启动浏览器,更改浏览器/计算机或清除会话数据可以轻松避免这种情况.
记录IP似乎是下一个合理的解决方案,但我想知道这是否会经常出现误报(NAT后面的同一局域网中的多个人将拥有相同的外部IP等).
这里有中间地带或我忽略的其他方法/组合吗?
mla*_*bie 22
我会收集尽可能多的关于会话的数据,而不直接询问任何问题(浏览器,操作系统,已安装的插件,所有版本号,IP地址等)并散列它.
如果要允许多个投票,请记录哈希并递增计数器.在盐中加入时间戳(每日,每小时等)以使投票时间敏感,比如说每天5票.
MSa*_*ers 12
中国人必须与其他数百人分享一个IPv4地址; Hp/Compaq/DEC拥有近5000万个地址.IPv6并没有帮助,因为每个人都获得了数十亿的地址.一个人与IP地址不同,这个概念变得越来越虚假.
在互联网上没有正确的方法可以做到这一点.人们只是互联网上未知的概念,任何介绍这一概念的想法都不可能成功.(例如,太多的政府不希望这种情况发生.)
当然,您可以将每个IP的投票数量与该IP重复页面访问的数量相关联,尤其是与Cookie跟踪相结合.如果您在开始投票期之前估计该数字,则效果最佳.如果前5%的热门文章通常从单个IP中读取10次,则可能有10人共享该IP,他们应该获得10票.Cookie可以用来防止他们窃取对方投票,但总的来说他们不能扭曲你的民意调查.(注意:在小型社区中,这种情况失败了,其中一大群选民来自少数知识产权,特别是在大学附近).
ben*_*n_h 11
最简单的答案是使用cookie.显然,它很容易被人清除他们的cookie,但无论如何,匿名投票本质上是近似的.
在实践中,除非被投票的主题在某种程度上存在争议或煽动性,否则人们无论如何都不会有操纵投票的动机.
IP更"可靠",但由于NAT会产生无法接受的高水平冲突.
如何由IP +用户代理(可能是哈希)组成一个更独特的标识符?这实际上意味着对于每个IP,每个确切的操作系统/浏览器版本对获得1票,这更接近每人1票.大多数浏览器在用户代理中提供详细的版本信息 - 我不确定,但我的直觉是这样可以防止NAT引起的大多数冲突.
唯一仍会产生大量冲突的地方是拥有标准化网络的企业环境,每个人都使用相同的机器.