2

我想为用户等进行一些测试,并希望以匿名方式存储结果。我对潜在的追踪用户完全不感兴趣,但另一方面,我需要一种方法来避免重复提交(在特定时间范围内)。所以我的想法是:为什么不简单地存储他们的 IP 地址的哈希值并检查后续提交的内容,而不是保存实际的 IP 地址?

这听起来很简单,以至于我担心错过了什么,所以我向专家提出的问题是:

  • 是否提供了一种相对安全的方式来防止重复提交?
  • 它真的为用户提供了合理的匿名性吗?
  • 是否还有其他我可能遗漏的警告或问题(例如资源过于密集等)?

谢谢..

4

2 回答 2

0

是否提供了一种相对安全的方式来防止重复提交?

不,用户可以使用代理和其他方法绕过 IP 检查。更不用说可以重置调制解调器的动态 IP 用户了。

它真的为用户提供了合理的匿名性吗?

单向算法将提供最好的“匿名性”,因为从技术上讲,您无法以简单的方式逆转它。编辑:正如@ta.speot.is 所纠正的那样,如今即使是单向算法也很容易破解。

我也不明白为什么要将“匿名”提升到散列 IP 的级别,前提是您的用户通过 HTTP 访问您的页面,您的服务器知道他们的 IP 并将它们记录在访问日志中,因此,除非其他人有权访问您的数据库存储的数据,散列或不散列 IP 之间没有太大区别。

是否还有其他我可能遗漏的警告或问题(例如资源过于密集等)?

一个简单的散列函数不应该从服务器上占用太多资源,即使您没有特别指定任何语言。=]

最后,散列 IP 可能被认为是一种隐蔽尝试的安全性,因为它没有添加存储未散列 IP 已经具有的功能。

于 2012-06-10T08:40:32.163 回答
0

你是对的 - 存储 IP 地址哈希对于“匿名”更好。此外,为了避免重复提交,您可能还需要考虑 X-Forwarded-For 的值(连同 IP 地址)。不是灵丹妙药,但比 IP 地址更好。

于 2012-06-10T09:41:01.463 回答