Php 在投票比赛中追捕骗子

Php 在投票比赛中追捕骗子,php,spam-prevention,voting,Php,Spam Prevention,Voting,目前我们正在举办一场比赛,比赛进行得非常顺利。不幸的是,我们有所有这些骗子回到业务谁是运行脚本自动投票给他们的条目。我们已经看到一些作弊者通过手工查看数据库条目——例如,在同一个浏览器上,整整70分钟内都有5颗星的评分。现在随着用户群的成长,识别它们变得越来越困难 我们到目前为止所做的: 我们存储IP和浏览器,并在一小时的时间内阻止这种组合。饼干对这些家伙没什么帮助 我们也在使用验证码,它已经被破坏了 有人知道我们如何用PHP脚本在数据库中找到模式,或者我们如何更有效地阻止它们吗 非常感谢您的帮

目前我们正在举办一场比赛,比赛进行得非常顺利。不幸的是,我们有所有这些骗子回到业务谁是运行脚本自动投票给他们的条目。我们已经看到一些作弊者通过手工查看数据库条目——例如,在同一个浏览器上,整整70分钟内都有5颗星的评分。现在随着用户群的成长,识别它们变得越来越困难

我们到目前为止所做的:

  • 我们存储IP和浏览器,并在一小时的时间内阻止这种组合。饼干对这些家伙没什么帮助
  • 我们也在使用验证码,它已经被破坏了
  • 有人知道我们如何用PHP脚本在数据库中找到模式,或者我们如何更有效地阻止它们吗


    非常感谢您的帮助……

    您可以在投票表中添加验证码。还需要电子邮件确认将非常有用

    直接反馈消除 这更像是一种通用策略,可以与许多其他方法相结合。不要让垃圾邮件发送者知道他是否成功

    您可以完全隐藏当前结果,只显示没有绝对票数的百分比,或延迟显示投票

    • 赞成:对所有方法都很好
    • 缺点:如果欺诈是大规模的,百分比显示和延迟将无效
    选票下降 这也是一个总体战略。如果您有理由认为投票是由垃圾邮件发送者进行的,请清点他们的投票并将其标记为无效,并在最后删除无效的投票

    • 优点:可以抵御所有可检测的垃圾邮件攻击
    • 缺点:投票有偏差,更难设置,误报
    验证码 使用一个。如果您的验证码被破坏,请使用更好的验证码

    • 赞成:对所有自动脚本都很好
    • 反对者:反对无效
    IP检查 限制IP地址在时间跨度内可投的票数

    • 赞成:好对付那些经常在浏览器中点击F5的随机家伙
    • 优点:易于实现
    • 缺点:对于使用代理服务器的复杂脚本来说是无用的
    • 缺点:IP地址有时映射到许多不同的用户
    推荐人检查 如果假设一个用户映射一个IP地址,则可以限制该IP地址的投票数。然而,这种假设通常只适用于私人家庭

    • 优点:易于实现
    • 赞成:在某种程度上对简单的咽管制有好处
    • 缺点:通过自动脚本很容易规避
    电子邮件确认 使用电子邮件确认,每封电子邮件只允许一次投票。手动检查您的数据库,查看他们是否使用一次性电子邮件

    请注意,您可以在电子邮件地址中将
    +foo
    添加到您的用户名中<代码>username@example.com和
    用户名+foo@example.com
    两者都会将邮件发送到同一个帐户,因此请记住,在检查是否有人已经投票时

    • 赞成:对简单的垃圾邮件脚本很好
    • 缺点:难以实施
    • 缺点:有些用户不喜欢它
    HTML表单随机化 随机化选择的顺序。他们可能需要一段时间才能发现

    • 赞成者:不管怎样,很高兴有
    • 缺点:一旦被发现,很容易规避
    HTTPS 伪造投票的一种方法是从Firefox这样的有效浏览器中捕获http请求,并用脚本模拟它,这在使用加密时并不容易

    • 赞成者:不管怎样,很高兴拥有
    • 赞成:对非常简单的脚本很好
    • 缺点:设置起来更困难
    代理检查 如果垃圾邮件发送者通过代理投票,您可以检查标题

    • 赞成:对使用代理的更高级脚本很好
    • 缺点:一些合法用户可能会受到影响
    缓存检查 尝试查看客户端是否加载了所有未缓存的资源。 很多Spambot不这样做。我从来没有试过,我只知道这通常不是由投票网站检查的

    例如,在html中嵌入
    ,其中.gif是一些1x1像素的图像。然后,您必须使用
    缓存控制“无缓存,必须重新验证”
    为请求
    GET/a.gif
    设置http头。您可以使用
    .htaccess
    文件在Apache中设置http头,如。(谢谢Jacco)

    • 赞成者:据我所知,这是一种罕见的方法
    • 缺点:设置起来有点困难
    [编辑2010-09-22]

    埃弗库奇
    • 一个所谓的搜索引擎可以用来跟踪基于浏览器的垃圾邮件发送者

      • 如果你真的很担心,那么你必须做一些类似电子邮件验证的事情,这可能足以阻止大多数作弊者

        此外,这还取决于NAT背后的多人是否愿意投票给同一个选项(例如,最喜欢的学校)

        你创建的任何方案都可以玩

        编辑:正如其他人所建议的,您可以使用诸如来阻止自动机器人,并减少人类重复投票的可能性。以降低人类投票的可能性为代价。

        总是好的,但可能会让一些用户感到“不安”


        是一种被广泛使用的服务

        来阻止你可以使用的机器人投票。

        唯一想到的是使用。要么是一个精心制作的,有图片和噪音的服务,要么是一个非常简单和不显眼的服务,比如“七加三是什么?”或者(如果你在美国),“我们总统的姓是什么”,简单的常识性问题,每个人都可以回答。如果您经常更改它们,这甚至可能比传统的基于图像的验证码更有效。

        在提交投票之前,只允许使用openidreCaptcha登录的用户,并使用相同的ip地址监控提交者列表。

        模式如何(你可能知道)哈