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

问题描述:

我正在制作投票页面,任何用户都可以在无需登录的情况下投票。 用户只能投一次,所以如果用户刷新页面,投票按钮一定不会出现。如何限制用户只在他的机器上点击一次按钮

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

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

你永远不能完全确定一个用户只投票一次。你可以做的是添加多个检查。就像存储用户的IP地址一样,检查该IP是否已经用于投票。您还可以要求投票人在您的网站上创建一个帐户,以便他们验证其电子邮件地址,并且只允许登录用户投票一次。

+0

如果我保存IP地址。知识产权可以是动态的,如果我们有这样的公司内部知识产权,我会阻止公司所有员工投票,不是吗? – Jala

+2

@doha这是正确的,确保某人只投一次的唯一方法是让他们创建一个帐户,手动验证(通过检查诸如护照之类的东西。大多数时候让某人创建一个具有唯一电子邮件地址的帐户将正如你所知道的,任何人都可以创建无限数量的电子邮件地址 PS:有人也可以通过使用VPN的代理来“欺骗”IP地址 –

如果用户不是匿名用户,请不要在他的视图中加载HTML按钮。第一次(在用户点击它之前)显示它,然后只要他点击它,为该用户保存一个标志,然后在确定是否渲染按钮时测试该标志。当你从ajax获得成功响应时(假设你正在通过ajax做),也要确保你从DOM中移除按钮。 如果用户是匿名的,那么你不能真正做出一个万无一失的解决方案。一种选择是使用浏览器指纹识别和IP来尝试和限制,但它永远不会是万无一失的。 IP可以是动态的,你永远不能确定你有一个独特的用户。即使如此,您的DOM中仍然存在按钮的痕迹。