假设我有一个博客和一些在Rails中发布的帖子。 有没有在我的博客文章中添加“赞”功能,以便用户可以在不登录的情况下喜欢我的帖子? (没有登录用户!)
如果是,那么如何防止单个用户多次喜欢帖子?
我已经教过如何使用会话来识别过去的用户,但他们删除了什么会话?
答案 0 :(得分:4)
这是一个复杂的问题。正如您所说,您可以将此信息存储在会话中(因此在cookie中),但这还不够。简单清理cookie可以再次投票。所以,我的想法是存储我们可以获得的信息:
并且http标头中存在其他所有内容,例如:
然后将已经投票的信息存储在Cookie 和本地浏览器存储数据库中。
如果没有cookie和本地浏览器存储的人想投票,请尝试搜索IP和User-Agent。如果找到它,则表示此会话存在疑问。但是你永远不会百分百肯定,相同的用户代理可能来自同一个IP地址(如果是NAT)。所以我建议不要放弃这样的投票,只是将其标记为 suspicious ,以备将来使用。
答案 1 :(得分:0)
为什么不使用IP地址。每个人都应该有一个IP地址列。然后,您需要验证每个帖子的IP唯一性。