6

我的意思是,唯一的民意调查/投票/调查是,用户只能投票一次。我怎么做?追踪他们的IP?登录?除了登录,还有什么?(登录是我的最后一个选择,因此除了登录之外,我还能做些什么吗?)

4

3 回答 3

8

要限制每人的投票数,您需要跟踪此人。

现在有几种方法可以做到这一点,我将列出它们的优缺点。由您决定哪种方法最适合您。

  1. 登录:这将为您提供最终控制权。但这对用户来说也有点麻烦。这是你最后的偏好
  2. IP:你将如何处理网络代理背后的人?有拨号连接和/或动态 IP 的人呢?
  3. cookies:这对于短期投票很有用,因此您可以将 cookie 的到期时间设置为投票结束的时间。但是,一个潜在的缺点是用户(与luser对比)会知道如何删除 cookie!
  4. openId:虽然此方法与“登录”方法没有太大区别,但这可以使用户免于注册(这确实是登录最烦人的部分)。

编辑:这种情况的问题是您需要解析用户的身份。我认为OpenID在这方面做得非常好。

干杯,

jrh

于 2009-06-25T05:07:24.713 回答
2

您可以随时在他们的计算机上存储 cookie。但请注意,用户可以轻松禁用 cookie,或修改 cookie 的内容。没有 100% 可靠的方法来做你想做的事——用户总是可以创建一个新帐户,或移动到另一台计算机等。

但是,如果您想使用 cookie 方法,则有三种可能性。

  1. 您可以存储一些文字说明此人已投票
  2. 您可以存储引用他们投票的唯一 ID
  3. 您可以存储会话 cookie 并将其余数据存储在服务器上(可能更安全,因为他们无法编辑数据,只有会话 ID,这样做可能会使它无效)。
于 2009-06-25T05:09:35.523 回答
0

最安全的方法是登录系统。

但是,如果您不想使用一个,我曾经添加一个包含用户 IP 和浏览器女巫的哈希,这将帮助我过滤到比简单 IP 更好的程度(对于使用同一浏览器的不同人,浏览器字符串可能不同, 因为版本, 操作系统和安装的扩展), 但是如果他们切换浏览器你仍然有问题, 和 cookie 一样的问题。哈希值存储在数据库中。

于 2009-06-25T09:56:20.280 回答