情况:
问题是监控此类活动并做出响应的最佳解决方案是什么(考虑到网站政策不允许抓取/抓取)
我可以考虑一些选择:
对于第1点。你知道一个已经实施的好解决方案吗?有任何经验吗?一个问题是,一些误报可能表现为非常活跃但人类 用户。
对于第3点:你觉得这真的很邪恶吗?或者您是否看到任何可能的问题?
同时接受其他建议。
答案 0 :(得分:5)
我不建议自动锁定,不是因为它们必然是邪恶的,而是因为它们向恶意用户提供他们绊倒传感器的即时反馈,让他们知道不要对下一个做同样的事情他们注册的帐户。
用户代理阻止可能不会非常有用,因为显然用户代理很容易伪造。
关于您可能做的最好的事情是监控,但是如果您发现恶意行为,您仍然需要询问您将要做什么。只要您有不受控制的访问权限,您锁定的任何人都可以在不同的身份下再次注册。我不知道你需要什么样的信息才能获得一个帐户,但只是一个名字和电子邮件地址,对任何人来说都不会是一个障碍。
这是典型的DRM问题 - 如果有人能够看到这些信息,那么任何人都可以用它做任何他们想做的事情。你可以让它变得困难,但最终如果某人真的有决心,你就无法阻止它们,并且你冒着干扰合法用户和伤害你的业务的风险。
答案 1 :(得分:2)
第1点有你自己提到的问题。此外,它无法帮助对网站进行较慢的抓取,如果确实如此,那么合法的重度用户可能会更糟糕。
您可以转换第2点,只允许您信任的用户代理。当然,这对于伪造标准用户代理的工具没有帮助。
第3点的变体只是向网站所有者发送通知,然后他们可以决定如何处理该用户。
同样,对于我在第2点的变体,您可以将其设置为更柔和的操作,并通知有人正在使用奇怪的用户代理访问该网站。
编辑:相关,我曾经有一个奇怪的问题,当我访问我自己的不公开的网址时(我只是暂存一个我没有宣布或链接到任何地方的网站)。虽然除了我之外,没有人应该知道这个URL,但我突然注意到了日志中的命中。当我跟踪这个时,我看到它来自某个内容过滤网站。原来我的移动ISP使用第三方来阻止内容,它拦截了我自己的请求 - 因为它不知道该网站,然后它获取了我试图访问的页面,并且(我假设)做了一些关键字分析以决定是否阻止。这种事情可能是你需要注意的尾部情况。
答案 2 :(得分:1)
取决于我们谈论的是哪种恶意用户。
如果他们知道如何使用wget,他们可能会设置Tor并每次都获得新IP,慢慢复制你拥有的所有内容。我不认为你可以在不给你的(支付?)用户带来不便的情况下阻止这种情况。
与游戏,音乐,视频的DRM相同。如果最终用户应该看到某些内容,则无法保护它。
答案 3 :(得分:1)
简短回答:无法可靠地完成。
您可以通过简单地阻止在某个时间范围内导致一定数量命中的IP地址(一些Web服务器支持开箱即用,其他需要一些模块,或者您可以通过解析日志文件和例如使用iptables),但你需要注意不要阻止主要的搜索引擎爬虫和大型ISP的代理。
答案 4 :(得分:0)
选项3的问题在于,一旦刮刀计算出正在发生的事情,自动注销将是微不足道的。
答案 5 :(得分:0)
@frankodwyer:
@Greg Hewgill:
随机更改3的logout / disable-url会很有趣,但不知道我将如何实现它:)
答案 6 :(得分:0)
每次有人登录或注册时。也许你可以每隔十次显示验证码。
答案 7 :(得分:0)
添加评论:
同样,从服务提供商的角度来看,我也感兴趣的是一个用户(爬虫)不会为其他用户消耗cpu /带宽,所以你可以指出任何好的带宽/请求限制器吗?
对评论的回应:平台规范:基于在JBoss AS上运行的JBoss Seam的应用程序。但是前面有一个apache2。 (在linux上运行)
答案 8 :(得分:0)
Apache有一些带IP限制的模块AFAIK,对于我自己的带有大量数字内容的大型Java / JSP应用程序,我使用自己的servlet过滤器来做同样的事情(并限制来自一个IP块的同时连接,等)。
我同意上面的评论,最好是微妙,以便恶意用户无法判断他们是否/何时绊倒了你的警报,因此他们不知道采取规避措施。在我的情况下,我的服务器似乎变得缓慢,片状和不可靠(所以那时没有变化)......
RGDS
戴蒙