我正在制作一个图片库,我希望有一个投票按钮,人们可以按下该按钮来增加图像收到的票数。显然,我不希望人们向投票按钮发送垃圾邮件,因此我想将每个用户限制为 1 票。
我无权访问任何类型的数据库(除了写入文件),并且登录系统不适合我的目标受众。
存储用户之前是否访问过该页面的最佳方式是什么?使用 PHP 或 JavaScript 或其他东西会更好吗?
最佳答案
如果没有身份验证系统,您可以暂时限制用户的操作,但用户可以欺骗您的系统多次投票。
以下是不使用登录/身份验证系统的解决方案(及其缺点):
您可以使用 cookie、本地存储或任何其他方式在客户端存储点赞操作,但用户可以清除所有这些操作以再次重新获得投票权。对于大多数人来说这可能没问题(取决于您的受众),但任何想要欺骗系统的技术人员都可以做到。
您可以将更新操作与引用(例如用户代理或 IP 地址)一起存储在服务器端。但这些“身份验证”系统并不可靠:用户可以共享相同的用户代理并轻松更改它们。多个用户可以共享相同的IP地址并使用代理来更改他们的IP地址。
第三种解决方案是使用外部系统:facebook +1 投票系统(facebook 使用自己的身份验证系统)或 google+ 或其他外部服务。用户无法欺骗系统,但您不拥有自己的点赞数,没有 Facebook 或 google+ 帐户的人将无法投票。
关于javascript - 存储用户之前是否按下过按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31630747/