【问题标题】:php limit website used based on session id and/or ip address & account for proxy switchers基于会话 ID 和/或 IP 地址和代理切换器帐户使用的 php 限制网站
【发布时间】:2013-03-26 17:19:18
【问题描述】:

我真的不认为有一个万无一失的方法,但我当然是来​​这里寻求建议的......

我有一个项目,我想根据 IP 地址限制每个用户每天使用 3 次。当然,对于传统用例,我可以使用 mysql 表轻松地做到这一点……但我如何解释那些足够聪明的人使用foxyproxy(firefox 的代理切换器插件)和/或打开一个新的浏览器获得一个新的会话。每次使用都会显示为新的唯一用户。

我是坚持使用非万无一失的方法还是我可以尝试其他任何方法?我很确定我们的大多数用户群都不知道如何使用这些方法,甚至不知道这些方法是什么,但无论如何我想说明这一点。

编辑:如果也有非 php 解决方案,我愿意接受任何想法。

【问题讨论】:

    标签: php mysql ip-address


    【解决方案1】:

    您实际上无法以fool-proof 的方式防止这种情况发生。无论您想出什么办法,对于任何对网络如何运作有模糊线索的人来说,解决它都是微不足道的。

    您应该实施适当的身份验证系统并根据用户ID而不是访问服务的主机进行限制。

    【讨论】:

    • 没有什么能阻止某人注册更多的用户 ID,除非您正在做一些事情,比如需要信用卡授权才能访问。
    • 我同意这是最好的方法。我确实要求我的用户输入他们的电子邮件以查看结果,这样我就可以在那时根据电子邮件地址强制执行它。很好的电话,非常感谢。
    • @ceejayoz 一个非常有效的观点。我猜这是你对速率限制的关心程度的问题。
    • @ceejayoz 非常正确。在我的情况下,用户必须输入一个电子邮件地址,然后通过发送到真实电子邮件地址的链接进行验证。虽然这仍然不是万无一失的,但对于没有多个电子邮件地址的用户来说,这将是一个巨大的不便。
    【解决方案2】:

    某些代理服务器可能(或可能不)在 HTTP 标头中设置真实 IP 地址,例如 HTTP_CLIENT_IP 或 HTTP_X_FORWARDED_FOR 您还可以尝试根据 $_SERVER 中的其他变量来区分用户,例如

    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 5.1; rv:19.0) Gecko/20100101 Firefox/19.0
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    [HTTP_ACCEPT_LANGUAGE] => en-US,en;q=0.5
    [HTTP_ACCEPT_ENCODING] => gzip, deflate
    [HTTP_X_DNT_OVERSION] => 2.2.1.611
    [HTTP_X_DNT_COHORT] => 2012-8-2
    [HTTP_X_DNT_VERSION] => 2.2.8.307 FF ffamo 10008
    

    它并不完美,它们都可以伪造,而且你会得到很多误报,因为很多人都有这种设置,但如果你真的那么绝望,它可能会有所帮助。

    【讨论】:

      【解决方案3】:

      你可以用一个cookie和一个ip阻止列表来限制它(当然你也可以使用flash cookie、javascript的localstorage等等)。在这两种情况下,您都可以节省服务的使用量和他使用它的时间。 如果用户只是试图删除他的 cookie 而没有获得新的 ip(无论是代理还是 ,你设置一个新的 cookie(因为你可以根据你的 ip 列表检查)。当然反过来也可以(设置 cookie 如果他只是改变了他的IP)。

      这适用于最普通的用户。但是没有办法绝对确定没有人可以绕过你的限制。

      【讨论】:

      • 如果我可以访问代理列表并且可以动态切换它,那么 Cookie 和 IP 阻止列表将毫无用处。我无法在服务器端强制执行 cookie。
      • 正如另一个答案中所讨论的,您可以添加更多障碍但不能完全阻止它。
      猜你喜欢
      • 1970-01-01
      • 2014-07-07
      • 2011-09-23
      • 1970-01-01
      • 2010-09-16
      • 1970-01-01
      • 2015-02-28
      • 2021-07-03
      • 2012-08-04
      相关资源
      最近更新 更多