如何限制用户在他的机器上只能点击一个按钮一次

How to restrict user to click a button only one time in his machine

我正在制作投票页面,任何用户无需登录即可投票。 用户只能投票一次,所以如果用户刷新页面,投票按钮一定不会出现。

如果用户在 cookie 中投票,我会尝试保存, 但存在问题:如果用户打开另一个浏览器或删除 cookie,他可以重新投票。

那么如何防止用户重新投票?

您永远无法完全确定用户只投票一次。您可以做的是添加多项检查。比如存储用户的 IP 地址并检查该 IP 是否已用于投票。您还可以要求选民在您的网站上创建一个帐户,他们需要验证他们的电子邮件地址,并且只允许登录用户投票一次。

如果用户不是匿名用户,请不要在他的视图中加载 HTML for 按钮。第一次(在用户单击它之前)显示它,然后在他单击它时立即为该用户保存一个标志,然后在确定是否呈现按钮时测试该标志。还要确保在收到 ajax 的成功响应后立即从 DOM 中删除按钮(假设您是通过 ajax 执行此操作)。 如果用户是匿名的,那么你就无法真正做出万无一失的解决方案。一种选择是使用浏览器指纹和 IP 来尝试限制它,但这永远不会是万无一失的。 IP 可以是动态的,您永远无法确定您拥有唯一的用户。即便如此,你的 DOM.

中仍然会有按钮的痕迹