发现和拦截恶意爬虫

简介: 互联网爬虫的种类众多,本文主要介绍了nginx网站如何发现恶意爬虫和拦截恶意爬虫。 发现问题 某日,收到A服务器所有网站打开缓慢的反馈,首先登陆到A服务器,查看nginx、php和mysql都正常运行,通过top命令查看发现服务器CPU、内存、系统负载均正常,通过云监控进行查看发现外网网卡出流量和数据包发送量很大 通过命令sar –n DEV 1 4进行核实后确实是外网网卡网络存在问题。

互联网爬虫的种类众多,本文主要介绍了nginx网站如何发现恶意爬虫和拦截恶意爬虫。

发现问题

某日,收到A服务器所有网站打开缓慢的反馈,首先登陆到A服务器,查看nginx、php和mysql都正常运行,通过top命令查看发现服务器CPU、内存、系统负载均正常,通过云监控进行查看发现外网网卡出流量和数据包发送量很大

1

通过命令sar –n DEV 1 4进行核实后确实是外网网卡网络存在问题。
通过命令iftop -i eth1 –P对外网网卡流量情况进行分析排查发现http服务的tcp80端口占用了13+M/s的出流量。
接下来排查nginx站点日志发现XXXXX.com.log站点的日志存在日志量较大超过3G,打开日志发现大量的user-agent为Baiduspider 的访问,如下图
2

查看访问IP为不同的IP,通过命令nslookup ip进行查看发现不是百度官方的蜘蛛抓取,判断为恶意爬虫。

拦截恶意爬虫
正常爬虫通常会带有xxspider的user-agent标识,并且爬取的请求量不大,爬取URL和时间段都比较分散。合法的爬虫IP在做反向的nslookup或tracert时,一般都可以看到合法的来源地址。例如,下图显示了一条百度爬虫的记录。
1
而恶意爬虫可能会在某个时间段大量请求某个域名的特定地址/接口,这很可能是伪装成爬虫的CC攻击,或是经第三方伪装后,针对性爬取敏感信息的请求。当恶意爬虫请求量大到一定程度,往往可以造成服务器的CPU飙升,带来网站无法打开等业务中断问题。

在站点配置文件XXXXX.com.conf中加入以下代码阻止user-agent带有Baiduspider的访问,返回结果指定为403。
if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot") {
return 403;
}
此代码会屏蔽所有的爬虫,所以对搜索排名有要求的话建议不用使用此方法。重新载入XXXXX.com.conf后观察流量情况发现流量恢复正常。网站访问恢复正常。
2

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
14天前
|
数据采集 XML 数据处理
使用Python实现简单的Web爬虫
本文将介绍如何使用Python编写一个简单的Web爬虫,用于抓取网页内容并进行简单的数据处理。通过学习本文,读者将了解Web爬虫的基本原理和Python爬虫库的使用方法。
|
29天前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。
|
1月前
|
数据采集 数据挖掘 Python
使用Python构建简单的Web爬虫:实现网页内容抓取与分析
本文将介绍如何使用Python编写一个简单的Web爬虫,实现对特定网页内容的抓取与分析。通过学习本文,读者将了解到如何利用Python的requests和Beautiful Soup库来获取网页内容,并通过示例演示如何解析HTML结构,提取所需信息。此外,我们还将讨论一些常见的爬虫挑战以及如何避免被网站封禁的策略。
|
1天前
|
数据采集 安全 JavaScript
【2024-完整版】python爬虫 批量查询自己所有CSDN文章的质量分:附整个实现流程
【2024-完整版】python爬虫 批量查询自己所有CSDN文章的质量分:附整个实现流程
8 0
|
1天前
|
数据采集 JSON API
【2024-简洁版】python爬虫 批量查询自己所有CSDN文章的质量分:方便快速上手修改代码
【2024-简洁版】python爬虫 批量查询自己所有CSDN文章的质量分:方便快速上手修改代码
8 0
|
4天前
|
数据采集 Web App开发 Java
Python 爬虫:Spring Boot 反爬虫的成功案例
Python 爬虫:Spring Boot 反爬虫的成功案例
|
5天前
|
数据采集 Python
使用Python实现简单的Web爬虫
本文将介绍如何使用Python编写一个简单的Web爬虫,用于抓取网页上的信息。通过分析目标网页的结构,利用Python中的requests和Beautiful Soup库,我们可以轻松地提取所需的数据,并将其保存到本地或进行进一步的分析和处理。无论是爬取新闻、股票数据,还是抓取图片等,本文都将为您提供一个简单而有效的解决方案。
|
6天前
|
数据采集 存储 XML
如何利用Python构建高效的Web爬虫
本文将介绍如何使用Python语言以及相关的库和工具,构建一个高效的Web爬虫。通过深入讨论爬虫的基本原理、常用的爬虫框架以及优化技巧,读者将能够了解如何编写可靠、高效的爬虫程序,实现数据的快速获取和处理。
|
12天前
|
数据采集 Web App开发 数据可视化
Python爬虫技术与数据可视化:Numpy、pandas、Matplotlib的黄金组合
Python爬虫技术与数据可视化:Numpy、pandas、Matplotlib的黄金组合
|
13天前
|
数据采集 存储 大数据
Python爬虫:数据获取与解析的艺术
本文介绍了Python爬虫在大数据时代的作用,重点讲解了Python爬虫基础、常用库及实战案例。Python因其简洁语法和丰富库支持成为爬虫开发的优选语言。文中提到了requests(发送HTTP请求)、BeautifulSoup(解析HTML)、Scrapy(爬虫框架)、Selenium(处理动态网页)和pandas(数据处理分析)等关键库。实战案例展示了如何爬取电商网站的商品信息,包括确定目标、发送请求、解析内容、存储数据、遍历多页及数据处理。最后,文章强调了遵守网站规则和尊重隐私的重要性。
26 2

相关课程

更多