2009-02-24 134 views
0

我们有网站的文章用户可以投票。推荐的限制投票的方法是什么?什么是限制我们网站投票的最佳方式?

。它有表决权实现的,我知道一些可能的解决这么多的网站,但我想这是一种基于会话,IP地址,时间限制一些基本防弹推荐的方法等

什么是最好的从浏览器发送投票的方式?基本的GET/POST或AJAX请求?是否有必要使用一些预生成的请求ID?

更新:我们不能使用用户注册。

+0

类似的问题在这里:http://stackoverflow.com/questions/572723/stopping-users-voting-multiple-times-on-a-website – 2009-02-24 12:16:08

回答

0

防止重复职位的最佳方式在网友投票是仅具有签名。这样,您可以将他们的投票存储在某些数据存储(DB)中。

如果你想允许用户匿名投票,使用浏览器会话。 这样做的缺点是,他们可以关闭/重新打开浏览器并重新启动。

我不会建议使用IP限制投票,因为许多用户可以在一个代理,所以它看起来像他们有相同的IP。如果其中一个用户投票,其他人就不能投票了。

0

,除非你需要一些严重的(银行级)认证有没有防弹的解决方案。也就是说,基本的解决方案是使用会话(cookies)。 IP限制是一个非常糟糕的主意(例如,我与其他约20个人分享知识产权)。

0
  • 使用身份验证的用户
  • 不要阻塞IP
  • 如果同一个IP与不同的帐户投票多次不要饼干验证票
  • 尝试使用验证码

如果你想允许未经认证的用户,那么你一定要使用captcha来避免机器人。但我仍然认为最好的方式是只允许投票通过身份验证的用户。 你可以这样做,比1小时/ 2小时的用户不能投票,以避免机器人创建帐户和投票。

2

[...] 防弹 [...]

Impossible.

通过账户限制将帮助 - IP地址远远动态和易于更换的是远程“安全”。您当然必须限制帐户创建,再次困难..

Stackoverflow很好(最近有关于此的博客文章,"New Question/Answer Rate Limits") - 基本上有您必须积极参与一段时间的帐户你可以投票。然后,您的费率受限(按帐户),直到您参加了一段时间。然后限制被删除,所以你不会惹恼更多的活跃(更可信的)用户。

如果您只是想防止因果关系,“意外”投票,通过cookie进行限制,并且可能还会通过IP进行限制(同时考虑到多个用户可以在一个IP之后)。如果您想尝试并阻止滥用,需要你不能只点击“注册”的帐户(或者说,你不能写一个“点击注册2000次”的脚本),尽管这并不总是可能的(或实际的)

0

最好的方法应该是user_id,一个用户只能对每个挑战进行一次投票,每个挑战应该有一个唯一的ID。

  • 允许新用户注册。
  • 检查用户是否通过身份验证。
  • 检查用户是否已在投票ID中投票,然后创建新投票。
相关问题