标签: detection

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

我已经接受了答案,但遗憾的是,我相信我们仍然坚持我们最初的最坏情况:CAPTCHA每个人都在购买废话的尝试.简短说明:缓存/ Web场无法跟踪命中,任何解决方法(发送非缓存的Web信标,写入统一表等)都会使网站的速度比机器人更慢.思科等可能有一些昂贵的硬件可以提供高水平的帮助,但如果每个人都可以选择CAPTCHA,那么很难证明成本是合理的.我稍后会尝试更全面的解释,以及为未来的搜索者清理它(尽管欢迎其他人尝试,因为它是社区维基).

情况

这是关于woot.com上的包装销售情况.我是Woot Workshop的总裁,Woot是Woot的子公司,负责设计,撰写产品说明,播客,博客文章以及审核论坛.我使用CSS/HTML,我只是熟悉其他技术.我与开发人员密切合作,并在这里讨论了所有答案(以及我们已经拥有的许多其他想法).

可用性是我工作的重要组成部分,使网站令人兴奋和有趣是其余部分.这就是下面三个目标的来源.CAPTCHA损害了可用性,机器人从我们的垃圾销售中窃取了乐趣和兴奋.

对于随机垃圾销售,机器人在第二次屏幕抓取(和/或扫描我们的RSS)时数十次关闭我们的头版.他们看到的那一刻,它触发了登录程序的第二阶段,点击我想要一个,填写表格,并购买废话.

评估

lc:在stackoverflow和其他使用此方法的站点上,它们几乎总是处理经过身份验证的(已登录)用户,因为正在尝试的任务需要这样做.

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

所以我们又回到了扫描IP,其中a)在这个云网络和spambot僵尸时代相当无用,以及b)因为来自一个IP地址的企业数量而吸引了太多的无辜者(更不用说与非静态IP ISP和潜在的性能命中试图跟踪这个).

哦,让人们打电话给我们将是最糟糕的情况.我们可以让他们打电话给你吗?

BradC:Ned Batchelder的方法看起来很酷,但它们的设计非常坚固,可以击败为网站构建的机器人.我们的问题是机器人是专门为打败我们的网站而构建的.其中一些方法可能会在很短的时间内工作,直到脚本编写者发展他们的机器人忽略蜜罐,屏幕刮擦附近的标签名称而不是表单ID,并使用支持javascript的浏览器控件.

 

lc:"当然,除非炒作是你营销计划的一部分." 是的,肯定是.当项目出现时的惊喜,以及如果你设法获得一个项目的兴奋可能与你最终得到的垃圾一样重要或更重要.任何消除先到先得的东西都不利于"赢得"垃圾的快感.

 

novatrust:我是一个人,欢迎我们新的机器人霸主.我们实际上提供RSSfeeds以允许第三方应用程序扫描我们的网站以获取产品信息,但不会超出主站点HTML.如果我正确地解释它,你的解决方案确实通过完全牺牲目标1来帮助目标2(性能问题),并且只是辞去机器人将购买大部分垃圾的事实.我对你的回复进行了投票,因为你的最后一段悲观情绪对我来说是准确的.这里似乎没有银弹.

其余的响应通常依赖于IP跟踪,再次,这似乎无用(使用僵尸网络/僵尸/云网络)和有害(捕获来自同一IP目的地的许多无辜者).

还有其他方法/想法吗?我的开发人员一直在说"我们只是做CAPTCHA",但我希望所有真正想要我们废话的人都会采用较少侵入性的方法.

原始问题

假设您正在销售具有很高感知价值的便宜货,并且您的数量非常有限.没有人确切知道你何时会出售这件物品.超过一百万人经常来看看你卖的是什么.

你最终会得到脚本编写者和机器人试图以编程方式[a]弄清楚你卖的东西,并且[b]确保他们是第一个购买它的人.这很糟糕有两个原因:

  1. 您的网站遭到非人类的抨击,所有人都放慢了速度.
  2. 脚本编写者最终"赢得"了产品,导致常客感到受骗.

一个看似显而易见的解决方案是为您的用户创建一些环节,以便在下订单之前跳过,但至少有三个问题:

  • 用户体验对人类来说很糟糕,因为他们必须解密CAPTCHA,挑选猫或解决数学问题.
  • 如果感知到的好处足够高,并且人群足够大,那么一些团队会找到适合任何调整的方式,导致军备竞赛.(尤其如此,调整更简单;隐藏'评论'形式,重新排列表单元素,错误标记它们,隐藏'gotcha'文本都将工作一次然后需要更改以针对此特定表单进行定位.)
  • 即使脚本编写者无法"解决"您的调整,也不会阻止他们抨击您的首页,然后发出警报,让脚本编写者手动填写订单.鉴于他们从解决[a]中获得优势,他们可能仍然会赢[b]因为他们将成为第一批到达订单页面的人.此外,1.仍然会发生,导致服务器错误和每个人的性能下降.

另一种解决方案是监视IP经常发生的攻击,阻止它们进入防火墙,或以其他方式阻止它们进行排序.这可以解决2.并且防止[b],但是扫描IP的性能是巨大的,并且可能会导致比脚本编写者自己造成的更多问题.此外,云网络和spambot僵尸的可能性使IP检查相当无用.

第三个想法,迫使订单表格被加载了一段时间(比如说,半秒钟)可能会减慢快速订单的进度,但同样,脚本编写者仍然会成为第一批人,无论如何都不会对实际用户.

目标

  1. 将该项目出售给非脚本人类.
  2. 保持网站以不受机器人减速的速度运行.
  3. 不要为完成任何任务而对"正常"用户进行麻烦,以证明他们是人.

scripting bots detection e-commerce

489
推荐指数
19
解决办法
9万
查看次数

如何在所有现代浏览器中检测页面缩放级别?

  1. 如何在所有现代浏览器中检测页面缩放级别?虽然这个线程告诉我如何在IE7和IE8中做到这一点,但我找不到一个好的跨浏览器解决方案.

  2. Firefox存储页面缩放级别以供将来访问.在第一页加载时,我能够获得缩放级别吗?我读到它的某个地方在页面加载发生缩放变化时有效.

  3. 有没有办法陷阱'zoom'事件?

我需要这个,因为我的一些计算是基于像素的,并且在缩放时它们可能会波动.


由@tfl给出的修改样本

此页面在缩放时提醒不同的高度值.[的jsfiddle]

<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js" type="text/javascript"/></script>
    </head>
    <body>
        <div id="xy" style="border:1px solid #f00; width:100px;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque sollicitudin tortor in lacus tincidunt volutpat. Integer dignissim imperdiet mollis. Suspendisse quis tortor velit, placerat tempor neque. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Praesent bibendum auctor lorem vitae tempor. Nullam condimentum aliquam elementum. Nullam egestas gravida elementum. Maecenas mattis molestie …
Run Code Online (Sandbox Code Playgroud)

javascript browser zoom detection

296
推荐指数
9
解决办法
25万
查看次数

如何检测网络电缆/连接器的物理连接状态?

在Linux环境中,我需要检测RJ45连接器到其插槽的物理连接或断开状态.最好只使用BASH脚本.

以下在其他网站上提出的解决方案不适用于此目的:

  1. 使用'ifconfig' - 因为网络电缆可能已连接但网络配置不正确或当前未启动.
  2. Ping主机 - 因为产品将使用未知网络配置和未知主机在LAN内.

是不是有一些状态可以在/ proc文件系统中使用(其他一切都在那里)?

Linux世界是如何拥有自己的Windows泡泡版本,从图标托盘中弹出,表明您刚刚拔掉了网线?


Kent Fredriclothar,你的两个答案都满足了我的需求......非常感谢!哪一个我会用...我还是不知道.

我想我不能把你们两个都当作正确的答案吗?对我来说,我选择一个可能是公平的.我猜是翻硬币吗?再次,谢谢!

linux connection networking detection

138
推荐指数
7
解决办法
28万
查看次数

如何检测Flash是否已安装,如果没有,则显示隐藏的div以通知用户?

如何使用javascript/jQuery/etc来检测Flash是否已安装,如果不是,则显示包含告知用户需要安装Flash的信息的div?

javascript flash asp.net-mvc jquery detection

88
推荐指数
5
解决办法
12万
查看次数

如何检测用户是否在PHP中的localhost上?

换句话说,如何判断使用我的Web应用程序的人是否在其所在的服务器上?如果我没记错的话,PHPMyAdmin出于安全原因做了类似的事情.

php localhost detection

88
推荐指数
6
解决办法
8万
查看次数

物体检测和计算机视觉中的mAP度量

在计算机视觉和物体检测中,常用的评估方法是mAP.它是什么以及如何计算?

metrics machine-learning vision detection computer-vision

83
推荐指数
4
解决办法
5万
查看次数

检测CPU架构编译时

在编译C或C++代码时,找出CPU架构最可靠的方法是什么?据我所知,不同的编译器有自己的一套非标准预处理器定义(_M_X86在MSVS中__i386__,__arm__在GCC 中等).

有没有一种标准的方法来检测我正在构建的架构?如果没有,是否有各种编译器的这种定义的综合列表的来源,例如包含所有样板#ifdef的标题?

c c++ cpu-architecture detection compile-time

76
推荐指数
6
解决办法
6万
查看次数

刚刚将我的OS X升级到Yosemite,Android设备选择器没有显示设备 - 该怎么办?

升级到OS X Yosemite之后,我发现eclipse无法正常工作,因为JAVA没有正确安装.我安装了它,现在我可以打开eclipse.

当我连接我的设备时,我能够在eclipse中的设备列表中看到我的设备.但是,当我运行我的项目时,我无法在Android设备选择器上看到它.我的设备被Eclipse检测到,但我无法选择它来运行.

这对我之前的OS X Mavericks来说非常完美!请帮忙!

谢谢

eclipse android device detection

50
推荐指数
1
解决办法
1万
查看次数

更快的RCNN用于TensorFlow

有没有人为TensorFlow版本实现FRCNN?我找到了一些相关的回购如下:

  1. 实现roi池层
  2. 基于py-faster-rcnn repo实现快速RCNN

但是对于1:假设roi池层工作(我还没有尝试过),并且需要实现如下内容:

  • ROI数据层,例如roidb.
  • 线性回归,例如SmoothL1Loss
  • 用于端到端训练的ROI池层后处理,其应该将ROI池层的结果转换为用于分类器的CNN.

对于2:em ....,它似乎基于py-faster-rcnn,它基于Caffe准备预处理(例如roidb)并将数据输入Tensorflow来训练模型,看起来很奇怪,所以我可能没试过它.

所以我想知道的是,Tensorflow将来支持更快的RCNN吗?如果没有,我是否有任何误解上面提到的?或有任何回购或有人支持?

detection caffe pycaffe tensorflow

44
推荐指数
1
解决办法
2万
查看次数

在Ruby中检测操作系统

有没有办法检测ruby中的操作系统?我正在开发一个需要检测Mac与Windows的Sketchup工具.

ruby operating-system detection sketchup

42
推荐指数
3
解决办法
2万
查看次数