Scripting 阻止脚本编写者抨击你的网站

Scripting 阻止脚本编写者抨击你的网站,scripting,e-commerce,bots,detection,Scripting,E Commerce,Bots,Detection,我已经接受了一个答案,但遗憾的是,我相信我们仍然停留在最初的最坏情况下:验证每个人购买垃圾的企图。简要说明:缓存/web场使跟踪点击变得不可能,任何解决方法(发送非缓存的web信标、写入统一表等)都会使网站的速度比机器人更慢。思科或类似公司可能会提供一些昂贵的硬件,在高水平上有所帮助,但如果验证每个人的身份是另一种选择,那么很难证明成本是合理的。稍后我将尝试进行更全面的解释,并为未来的搜索者清理这些内容(尽管欢迎其他人尝试,因为这是社区wiki) 处境 这是关于woot.com上的垃圾袋销售。我

我已经接受了一个答案,但遗憾的是,我相信我们仍然停留在最初的最坏情况下:验证每个人购买垃圾的企图。简要说明:缓存/web场使跟踪点击变得不可能,任何解决方法(发送非缓存的web信标、写入统一表等)都会使网站的速度比机器人更慢。思科或类似公司可能会提供一些昂贵的硬件,在高水平上有所帮助,但如果验证每个人的身份是另一种选择,那么很难证明成本是合理的。稍后我将尝试进行更全面的解释,并为未来的搜索者清理这些内容(尽管欢迎其他人尝试,因为这是社区wiki)

处境 这是关于woot.com上的垃圾袋销售。我是Woot Workshop的总裁,Woot的子公司负责设计、撰写产品描述、播客、博客帖子,并主持论坛。我使用CSS/HTML,对其他技术几乎不熟悉。我与开发人员密切合作,并且已经讨论了这里的所有答案(以及我们的许多其他想法)

可用性是我工作中的一个重要部分,而让网站变得令人兴奋和有趣是剩下的大部分工作。这就是下面三个目标的来源。验证码损害了可用性,而机器人从我们的垃圾销售中偷走了乐趣和兴奋

机器人每秒数十次地冲击我们的头版,抓屏(和/或扫描我们的RSS)进行随机垃圾销售。当他们看到这一点时,就会触发程序的第二阶段,即登录、单击“我想要一个”、填写表单并购买垃圾

评价 :在stackoverflow和其他使用此方法的站点上,它们几乎总是与经过身份验证(登录)的用户打交道,因为尝试的任务需要这样做

在Woot上,匿名(未登录)用户可以查看我们的主页。换句话说,砰击机器人可以是非身份验证的(除了IP地址之外,基本上是不可跟踪的)

因此,我们又回到了IP扫描上来,a)在这个云网络和spambot僵尸的时代,IP扫描是相当无用的;b)鉴于来自一个IP地址的企业数量众多,IP扫描捕获了太多的无辜者(更不用说非静态IP ISP的问题以及试图跟踪IP地址的潜在性能问题)

哦,让别人打电话给我们可能是最糟糕的情况。我们能让他们打电话给你吗

:Ned Batcheld的方法看起来很酷,但它们的设计非常坚定,可以击败为网站网络构建的机器人。我们的问题是,机器人是专门为打败我们的网站而构建的。这些方法中的一些可能会在短时间内有效,直到脚本编写者进化出他们的机器人来忽略蜜罐,在屏幕上搜索附近的标签名而不是表单ID,并使用支持javascript的浏览器控件

:“当然,除非宣传是你营销计划的一部分。”是的,确实是。当物品出现时的惊喜,以及当你设法得到一件物品时的兴奋,可能与你最终得到的垃圾一样重要或更重要。任何消除先到先得的做法都会对“赢得”垃圾的兴奋感有害

:我首先欢迎我们新的机器人霸主。事实上,我们确实提供RSSfeeds,允许第三方应用程序扫描我们的网站以获取产品信息,但不能先于主网站HTML。如果我理解正确的话,您的解决方案确实有助于实现目标2(性能问题),因为它完全牺牲了目标1,并且放弃了机器人将购买大部分垃圾的事实。我对你的回答投了赞成票,因为我觉得你最后一段的悲观是正确的。这里似乎没有银弹

其余的响应通常依赖于IP跟踪,同样,这似乎既没用(僵尸网络/僵尸/云网络),又有害(捕获许多来自相同IP目的地的无辜者)

还有其他方法/想法吗?我的开发人员一直在说“让我们做验证码吧”,但我希望有更少的侵入性的方法,让所有想要我们的垃圾的实际人类

原始问题 比如说,你在卖一些便宜的东西,有很高的感知价值,而你的数量非常有限。没有人确切地知道你什么时候卖这个东西。超过一百万的人经常来看你卖什么

你最终会遇到脚本编写者和机器人试图通过编程[a]了解你何时出售上述物品,并[b]确保他们是最先购买该物品的人之一。这很糟糕,有两个原因:

  • 你的网站被非人攻击,所有人的速度都变慢了
  • 编剧们最终“赢得”了这部作品,让常客们感到受骗了
  • 一个看似显而易见的解决方案是在用户下单之前为他们创建一些跳转框,但这至少有三个问题:

    • 用户体验对人类来说很糟糕,因为他们必须破译CAPTCHA,挑选猫,或者解决数学问题
    • 如果感知到的利益足够高,人群足够大,一些群体就会找到解决任何问题的办法,导致军备竞赛。(调整越简单,这一点尤其正确;隐藏的“注释”表单、重新排列表单元素、错误标记表单元素、隐藏的“gotcha”文本都将工作一次,然后需要更改以打击针对此特定表单的攻击。)
    • 即使编剧无法“解决”你的调整,也不能阻止他们猛击你的头版,然后敲响警钟让编剧手动填写订单。考虑到他们从解决[a]中获得优势,他们可能仍然会赢得[b],因为他们将是第一个到达订单页面的人。此外,1。仍然会发生,导致服务器错误和每个人的性能下降
    另一个解决方案是观察IP是否频繁命中,并将其从fi中屏蔽