限制基于IP或Cookie的用户活动?

abh*_*sek 4 php security ip session voting-system

我正在开发一个PHP脚本,允许用户对某些项目进行投票.任何用户是否登录都可以投票.考虑以下情况:

  1. 如果用户已登录,我可以记录用户的ID,并且如果他再次尝试投票,则可以限制对同一项目的投票.
  2. 如果用户未登录,我可以记录用户的IP,并限制对来自同一IP的同一项目的投票.

如果是第一种情况,则无需记录IP.现在,第二个案例让我疯了.我想知道用户可能正在更改IP,然后再次对同一项目进行投票.现在,即使我使用Cookie或会话变量,也可能发生用户正在开始新会话(或已删除cookie)以再次对同一项目进行投票.

我错过了什么吗?如果没有,如何处理这种情况?有什么想法吗?

roo*_*ook 6

我会认真考虑使用Captcha,reCaptcha是一个不错的选择.

您可以通过IP地址进行限制,但可以让许多人共享1个IP地址,例如小型学校或企业.它也很容易绕过因为代理是免费的和充足的.它也容易出错,因为有时负载均衡器会在会话期间更改IP地址.如果您真的想限制每人的投票数量,最好的办法是要求他们登录用户帐户并将投票存储在您的数据库中.

  • 对于未登录的用户,+1 reCaptcha是一个好主意. (2认同)