如何在不登录的情况下向博客文章添加“赞”功能

钢琴家

假设我有一个博客和一些在Rails中发布的帖子。无论如何,有没有向我的博客帖子中添加“赞”功能,以便用户无需登录就可以喜欢我的帖子?(没有用户登录!)

如果是,那么如何防止单个用户多次喜欢某个帖子?

我已经教过如何使用会话来识别过去的用户,但是他们删除了哪些会话?

格里奇

这是一个复杂的问题。如您所说,您可以将这些信息存储在会话中(因此存储在cookie中),但这还不够。简单清理cookie即可再次投票。因此,我的想法是存储可能获得的信息:

  • IP地址
  • 用户代理
  • X-Forwarded-For(有关代理的信息)

而其他所有内容都存在于http标头中,例如:

  • 通过(有关代理的信息)
  • 接受语言
  • 接受字符集
  • 联系

然后,将已被投票的信息存储在cookie本地浏览器存储数据库中。

当没有Cookie和本地浏览器存储的人想要投票时,请尝试搜索IP和用户代理。如果找到它,则表示此会话可疑。但是您永远不会百分百确定,相同的User-Agent可能来自相同的IP地址(在NAT的情况下)。因此,我建议不要放弃此类投票,只是将其标记为可疑,以备将来之用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在不影响父功能的情况下向子按钮添加“删除”功能?

如何在不阻塞 UI 的情况下向 GridLayout 添加多个视图?

如何在不锁定表的情况下向Postgres中的ENUM添加新值?

如何在不破坏页面的情况下向闪亮的应用程序添加框?

如何在不覆盖现有密钥的情况下向Dynamodb映射添加新密钥?

如何在不更改PostgreSQL类型的情况下向类型表中添加列?

如何在不编辑XAML的情况下向设计器中的网格单元添加控件?

如何在不更改col类的情况下向数据帧添加行?

如何在不破坏 WordPress 的情况下使用 .htaccess 向 URL 添加参数

如何在不展平MultiIndex的情况下向熊猫DataFrame添加一行

如何在不覆盖先前数据的情况下向文件添加数据

请问如何在不覆盖现有键的情况下向字典添加新的键值对?

如何在不丢失索引列名称的情况下向索引添加值?

如何在不指定特定值的情况下向值添加 +1?

如何在不登录的情况下保护Web服务

如何在不登录的情况下编辑.bashrc

如何在不登录的情况下使用 WSL Ubuntu?

如何在不登录的情况下删除坏程序?

如何在不登录的情况下保护REST API

如何在不添加参数的情况下对基于时间的功能进行单元测试

如何在不违反 Pact 合同的情况下向提供者和消费者代码添加新功能?

如何在不更改 UI 的情况下添加 NavigationLink?

在不更改已实现接口的情况下向实现类添加功能

在不更改名称的情况下向父类方法添加其他功能

如何在不删除现有过程的情况下向程序包添加新过程/功能?

如何在不执行命令的情况下向bash历史记录添加命令?

如何在不丢失laravel中的数据的情况下向现有迁移表添加额外的列?

如何在不创建循环的情况下将边添加到有向无环图

如何在不更改原始模型的情况下向嵌入式文档添加其他字段