在大约 2 小时内,我的网站上的一名登录用户访问了大约 1,600 个页面,其方式看起来与机器人非常相似。我之所以感到担忧,是因为用户必须购买网站访问权限才能完全访问我们受保护的内容;因此我有理由相信此人正在抓取我们的内容。
我知道我应该首先采取缓解措施来防止此类行为发生。我现在正在努力。
根据 Apache 访问和错误日志,我有相当强的间接证据表明用户正在使用某种爬虫或机器人。我想知道是否有任何方法可以获得直接证据,即基于爬虫模式,我能否 100% 地说这是一个脚本?
以下是访问日志的示例:
###.###.###.### - - [06/Apr/2016:19:32:59 -0500] "GET /article/id/slug-slug-slug-slug HTTP/1.1" 200 15002 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0"
###.###.###.### - - [06/Apr/2016:19:33:00 -0500] "GET /article/id/slug-slug-slug-slug HTTP/1.1" 200 15002 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0"
###.###.###.### - - [06/Apr/2016:19:33:04 -0500] "GET /article/id/wordmark-icon.png HTTP/1.1" 404 5026 "mywebsite.com/article/id/slug-slug-slug-slug" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0"
###.###.###.### - - [06/Apr/2016:19:33:05 -0500] "GET /article/id/60559332d74832ae81f6ea69f98e24cc.png HTTP/1.1" 404 5191 "mywebsite.com/article/id/slug-slug-slug-slug" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0"
###.###.###.### - - [06/Apr/2016:19:33:05 -0500] "GET /article/id/9e8d61bdd8acf3735a02ef90192eefa8.png HTTP/1.1" 404 5189 "mywebsite.com/article/id/slug-slug-slug-slug" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0"
###.###.###.### - - [06/Apr/2016:19:33:05 -0500] "GET /article/id/b75384c9aa61c22fa768cdfbafaf5351.png HTTP/1.1" 404 5190 "mywebsite.com/article/id/slug-slug-slug-slug" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0"
###.###.###.### - - [06/Apr/2016:19:33:06 -0500] "HEAD /article/id2/slug-slug-slug-slug HTTP/1.1" 200 604 "mywebsite.com/article" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0"
###.###.###.### - - [06/Apr/2016:19:33:07 -0500] "HEAD /article/id3/slug-slug-slug-slug HTTP/1.1" 200 604 "mywebsite.com/article" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0"
###.###.###.### - - [06/Apr/2016:19:33:08 -0500] "GET /article/id3/slug-slug-slug-slug HTTP/1.1" 200 9983 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0"
...等等等等。
以下是我在上述内容中发现的一些观察结果:
- 大约一毫秒内对同一 URL 发出了两次 GET 请求。我不相信人类能做到这一点,但我也可能是错的。
- 我不太了解在典型用户活动中看到 HEAD 请求的情况。这是常见现象吗?还是机器人的证据?
- 在上述前两个 GET 请求之后,还有其他请求用于获取文章中的图片。但实际上,这些图片位于具有完全不同 URL 方案的 CDN 上。此人/机器人/其他人正在使用 URI (/article/id/) 并添加实际图片文件名,导致出现 404 错误。每次都出现这种情况。
可以肯定地说这是一个机器人吗?如果可以,是否有可能找出具体脚本,还是可能性不大?至少,是否存在某种类型的机器人、网页抓取工具或脚本的症状?
谢谢您的意见。
答案1
可以肯定地说,这是一个机器人吗?
不可以。有人可能会打开您网站的多个标签页,导致浏览器崩溃,重新打开包含所有标签页的浏览器窗口,并导致类似 DOS 攻击的指纹。
如果是这样,有什么可能的方法来找出具体的脚本,或者这是一个不太可能的方法?
我没有看到任何可以让你精确地识别此类脚本的数据。
至少,是否存在某种类型的机器人、网络爬虫或脚本的症状?
损坏的图像请求确实让人觉得可疑。所以,是的,这是自动化活动的征兆,没错。
与其试图弄清楚这到底是什么,不如考虑使用行为/声誉监控工具,例如报告表。这样您就可以首先记录活动并确定您可能想要标记为可疑的模式。接下来,您可以决定如何处理此类可疑活动。
如果您不能确定它是否是机器人,又不想激怒可能是真实用户的用户,您可以简单地显示一个挑战,例如 reCaptcha,或重新登录。或者,您可以将此用户重定向到辅助服务器,这样主服务器上受信任的用户的性能就不会受到影响。或者,您甚至可以将他们发送到蜜罐并执行任何您想要的操作,显示虚假数据、显示缓存数据等。