javascript - 存储用户之前是否按下过按钮

标签 javascript php database cookies local-storage

我正在制作一个图片库,我希望有一个投票按钮,人们可以按下该按钮来增加图像收到的票数。显然,我不希望人们向投票按钮发送垃圾邮件,因此我想将每个用户限制为 1 票。

我无权访问任何类型的数据库(除了写入文件),并且登录系统不适合我的目标受众。

存储用户之前是否访问过该页面的最佳方式是什么?使用 PHP 或 JavaScript 或其他东西会更好吗?

最佳答案

如果没有身份验证系统,您可以暂时限制用户的操作,但用户可以欺骗您的系统多次投票。

以下是不使用登录/身份验证系统的解决方案(及其缺点):

  • 您可以使用 cookie、本地存储或任何其他方式在客户端存储点赞操作,但用户可以清除所有这些操作以再次重新获得投票权。对于大多数人来说这可能没问题(取决于您的受众),但任何想要欺骗系统的技术人员都可以做到。

  • 您可以将更新操作与引用(例如用户代理或 IP 地址)一起存储在服务器端。但这些“身份验证”系统并不可靠:用户可以共享相同的用户代理并轻松更改它们。多个用户可以共享相同的IP地址并使用代理来更改他们的IP地址。

  • 第三种解决方案是使用外部系统:facebook +1 投票系统(facebook 使用自己的身份验证系统)或 google+ 或其他外部服务。用户无法欺骗系统,但您不拥有自己的点赞数,没有 Facebook 或 google+ 帐户的人将无法投票。

关于javascript - 存储用户之前是否按下过按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31630747/

相关文章:

database - 是否有任何 FlockDB 教程站点

mysql - 用另一列查询的组合列的唯一约束

database - 如何将具有多个数字的列转换为一系列虚拟变量?

javascript - 如何进行多次 fetch 调用而不出现 429 错误?

javascript - 为整个对象定制 getter,而不仅仅是属性?

PHP 和 API 调用性能和最佳实践的一对多关系

php - 如何正确使用 JSON.stringify 和 json_decode()

javascript - 对象样式属性值的数据类型

javascript - 为什么我的 <p> 文本不会改变?

php - 尝试在 sql 查询中回显一些内容