你如何处理公众投票(任何人都可以“喜欢或不喜欢”一篇文章)并限制他只能投票一次?
我必须使用cookies吗?(问题是他可以删除cookie并投票x999次)还是我将他的IP存储在数据库中?
你如何处理公众投票(任何人都可以“喜欢或不喜欢”一篇文章)并限制他只能投票一次?
我必须使用cookies吗?(问题是他可以删除cookie并投票x999次)还是我将他的IP存储在数据库中?
解决方案分为三个部分:
仅使用 IP 是不合适的,因为它会使大量人退出投票系统。
使用 IP。
虽然您可能会导致一群人只从一个 IP 后面投票一次,但替代方案很容易绕过(不要存储 cookie)。
我会说两者都做,这样如果有人拥有动态 IP,他们将不得不同时更改 IP 和删除 cookie。
如果用户进行身份验证,即他们以自己的身份投票,则在数据库中抛出一条记录,说明用户已经投票。对于匿名选民,您仅限于使用 cookie、本地存储等。
可以使用evercookie代替 cookie ,这更难(但仍然可能)绕过。
evercookie 是一个可用的 javascript API,可在浏览器中生成极其持久的 cookie。它的目标是即使在他们删除了标准 cookie、Flash cookie(本地共享对象或 LSO)等之后也能识别客户端。