记录一次网站流量异常激增问题的发现和解决(可能是DataforSEO爬虫导致)
本文用于记录“我的网站流量异常高,几乎每天翻2-3倍,GA控制台看起来像正常方可,但最后排查发现是爬虫”这么一个问题,以及解决的过程,希望这个事件过程能给你带来一些经验,如果你也遇到了相似的事情,不妨读读吧。
渲染中...
本文用于记录“我的网站流量异常高,几乎每天翻2-3倍,GA控制台看起来像正常方可,但最后排查发现是爬虫”这么一个问题,以及解决的过程,希望这个事件过程能给你带来一些经验,如果你也遇到了相似的事情,不妨读读吧。 ## 问题简述 最近我开发的游戏资料站点“[MainGamers](https://www.maingamers.com/)”出现了流浪激增问题,且是持续多天的不断访问量攀升,如下图GA控制台显示,在几天前,还只是平均每天2000以内的访客量,在短短四天后,不断攀升到200K以上!  当第一第二天攀升时,我还以为是某个热点词汇流量爆发,但是仔细观察后,我发现了事情不对劲,访客激增,但实际登录用户并没有任何变化,这无论如何也说不过去。并且发现访问量主要都是集中在登陆页面上! ## 黑客攻击? 然后我不由得开始怀疑这是黑客攻击吗!?我开始思考防御措施。 这期间我尝试分析“黑客”的“攻击”手段、方式等,从而思考对策,并且再Clouflare上做了一些实际性的防御措施,譬如限流、bot拦截、按地区开启交互验证等等基础防护手段。刚加上这些措施时,看起来像是有所好转,比如实时访问量下降了一半左右,但是一天后看总量,却仍然持续攀升!!! 我开始怀疑人生了。。。然后我又想到,在这么大的访问量下,我那本就不宽裕的服务器竟然毫发无损,这“黑客”也太菜了?有这么菜的黑客吗?我的理智告诉我没有。我开始有些迷茫了。。。 ## 发现真相 由于我的代码没有主动记录详细的日志,譬如访客的UserAgent、IP地址等,我都没有记录,因为我认为这些日志在我的网站上目前有点大材小用,所以我不能很好的通过访客数据来排查问题。 然后我想到,在我前面配置 Clouflare 相关防御措施时,好像看到过访客IP的数据,我赶紧去看看能不能找到蛛丝马迹,然后真让我找到了有用的信息,如下图  监控显示图中的这一个IP就访问了10K+!然后查看器IP概览,其中可以看到有IP相关联的域名,也就是说这个IP应该是属于某个机构管理的。 然后我了解一下 `dataforseo.com` 这个域名,发现是属于一个叫做 DataforSEO 的机构,这是一个商业性质的SEO机构,有其自己的爬虫会扫描全网数据。 至此,我几乎可以断定就是这个机构的爬虫在“攻击”我! 但是我不明白这到底是什么原因,通过与AI的交流,我发现我的网站竟然没有 `robots.txt`。。。AI认为:可能是由于没有 `robots.txt`,叠加我的网站登录跳转机制,导致爬虫的逻辑出现了死循环,所以才出现这种情况。。。 ## 尝试和解决 好吧,我去加上了 `robots.txt` 并升级了代码。可是当我昨晚这个动作几个小时后,查看GA控制台,发现实时数据并没有缓解,迫不得已我主动去 DataforSEO 的网站联系他们试图解决问题。 我的诉求内容大致是 > “我发现你们的爬虫在频繁的爬取我的登录页面,我不知道该如何让他停止,请你们检查,如果确认有问题希望你们能够解决。” DataforSEO 的回复也很快,他们通过邮件告诉我: > “我们的爬虫是益虫,如果希望他不爬取xxx,请在robots.txt 中声明即可,如果添加后没用,你可以尝试在xxx页面重新提交你的网站来触发刷新”。 总之,看起来是一个很常见的回复,抱着试一试的想法,我就主动在他们的页面上提交了一下我的域名,果然过了几个小时后,GA面板上显示的数据有了明显的环节,30分钟实时访客从4000+降到了最开始图中的1000以内。不过通过实时监控可以看到,有些时候1分钟内还是可能到100+访客,这应该还是没有完全解决,不过至少不再是那么吓人的数据了。 ## 总结 这次事故值得记录的是非常折腾,折腾的原因有以下几点: 1. 网站的 `robots.txt` 不完善造成了,按照SEO规范,登录页最好不要让爬虫爬取。(AI是这么说的) 2. DataforSEO 的爬虫IP太过拟人。。。GA都无法分辨。 3. DataforSEO 的爬虫太菜了,容易造成死循环。。。
END
评论
登录后查看和发表评论
前往登录