代码之家  ›  专栏  ›  技术社区  ›  core

识别匿名用户

  •  6
  • core  · 技术社区  · 17 年前

    假设来自IP 123.34.243.57的访问者访问该网站并投票。那么,禁止123.34.243.*中的任何人投票是否安全?这是一个好策略吗?

    另一个是什么?

    5 回复  |  直到 17 年前
        1
  •  5
  •   Jason R. Coombs    17 年前

    我怀疑你想要的是一个特定的人 只能投票一次(也许每次调查)。

    问题是,一旦你正确地构建了问题,问题就会变得更加清晰。您不会试图识别互联网节点(IP地址)、访问(会话cookie)、浏览器实例(持久cookie)或计算机(也很难识别)。

    您可以使用Cookie技术,它们适合典型用户。颠覆这种技术就像 -清除浏览器中的Cookie, -打开另一个浏览器, -走到另一台电脑前, -使用匿名剂,

    您可以通过电子邮件地址进行验证,但您表示不想进行注册,所以我认为这也不能解决您的问题。

    第一种技术需要注册(通常是一种昂贵而耗时的注册),以验证个人的实际合法姓名和位置。然后,使用公钥基础设施(又称数字证书),您可以根据个人提供的凭据来识别个人。

    我怀疑这是一种冗长的说法,说你能做到,但这远非一个容易解决的问题。

        2
  •  2
  •   codeape    17 年前

    使用公共IP可能是个坏主意。如果使用这种方法,来自同一公司局域网的唯一访问者看起来都像一个用户。

    也许饼干?我相信这是大多数网站使用的。

    结合某种自动或手动的监控(例如日志文件分析)。对指示脚本的流量模式持怀疑态度。

        3
  •  1
  •   Guffa    17 年前

    不,您不能使用IP地址或IP跨度来识别唯一用户。有几个原因:

    你可以使用cookie来标记谁投票了。这会好得多,因为它不会盲目地攻击,但它当然不是完全准确的,因为人们可以清除Cookie并使用多个浏览器进行浏览。

        4
  •  0
  •   ntcong    17 年前

    阻止ip范围不是一个好策略,您可以有两个选项来识别已投票的用户、他们的ip和cookie。投票后,设置一个cookie,不允许他们再次投票。

    他们可以清除cookie并更改IP,但匿名投票是可以接受的,如果你想要更好的策略,让他们注册投票

        5
  •  0
  •   Isaac    17 年前

    你应该只屏蔽那个特定的IP,而不是整个IP范围!

    如果你没有注册,这是最好的解决方案,但不适合用户!

    您可以阻止某人多次投票。但你也可能阻止其他一些用户投票,这是因为NAT。

    Network Address Translation

    但这是可以的,因为NAT的使用并不频繁,很少有用户会被禁止投票。