当前位置:网站首页 >  攻略

迅睿CMS防爬虫访问限制配置全流程实操

时间:2026年06月15日 00:08:18 来源:易频IT社区

一、通过Robots.txt协议规范爬虫行为

Robots.txt是搜索引擎爬虫访问网站时第一个查看的文件,通过合理配置该文件,可以禁止特定爬虫抓取敏感目录。这是最基础且必须设置的第一道防线。

迅睿CMS防爬虫访问限制配置全流程实操

操作步骤:

1. 登录服务器文件管理器或使用FTP工具,进入迅睿CMS的网站根目录。

2. 查找是否存在robots.txt文件。如果不存在,新建一个。

3. 编辑robots.txt文件,写入以下配置内容。该配置禁止所有爬虫访问后台、API接口及缓存目录,同时放行主要抓取路径。

```text User-agent: Disallow: /admin/ Disallow: /api/ Disallow: /cache/ Disallow: /dayrui/ Disallow: /template/ Disallow: /config/ Disallow: /uploadfile/ Disallow: /system/ Disallow: /.php$ Sitemap: https://你的域名/sitemap.xml ```

注意事项:

配置完成后,使用浏览器访问https://你的域名/robots.txt确认内容已生效。此方法仅对遵守Robots协议的爬虫有效,对于恶意爬虫无效,需配合后续方法使用。

二、Nginx层面精准拦截恶意User-Agent

恶意爬虫通常通过特定的User-Agent特征进行识别。在Nginx配置文件中添加规则,可以直接在服务器层面拒绝请求,减少PHP资源消耗。这是最高效的拦截方式。

操作步骤:

1. 打开Nginx配置文件。通常路径为/www/server/panel/vhost/nginx/你的域名.conf(宝塔环境)或/etc/nginx/sites-available/你的域名

2. 在server块中的location / { ... }之前,添加以下代码块。

```nginx 禁止非浏览器及特定爬虫访问 if ($http_user_agent ~ "Scrapy|Curl|Python|Go-http-client|Java|HttpClient|Julia|PhantomJS|HTTrack|Harvest|Download|GetRight|GetWeb|SuperBot|WWW-Mechanize|WebCopier|WebFetch|WebBandit|WebGather|WebDownloader|WebReaper|WebSucker|Webvac|webmaster|webstripper|webcollage|grub|MiXc|MSIECrawler|NetAnts|NetSpider|NetZIP|Octopus|Offline Explorer|Openfind|pavuk|pcBrowser|RealDownload|ReGet|SiteSnagger|SmartDownload|snoopy|SpaceBison|Teleport|Teleport Pro|VoidEYE|WebAuto|WebCollage|WebDup|WebGo|WebImageExtractor|WebLeacher|WebMirror|WebReaper|WebSucker|webvac|webwhacker|WebZIP|Wget|Xaldon|Zeus|ZyBorg|MJ12bot|AhrefsBot|DotBot|SemrushBot") { return 403; } 禁止空User-Agent访问(防止简单脚本) if ($http_user_agent = "") { return 403; } ```

3. 保存文件后,检查Nginx配置是否正确。

```bash nginx -t ```

4. 若输出syntax is ok,则重载Nginx配置使规则生效。

```bash nginx -s reload ```

配置解析:

上述规则使用了正则匹配,凡是包含ScrapyPythonJava等关键词的User-Agent请求,将直接返回403 Forbidden状态码。这能有效拦截绝大多数基于脚本编写的简易爬虫。

三、基于Nginx访问频率限制(CC攻击防御)

爬虫往往具有极高的并发请求频率。通过限制同一IP在单位时间内的请求次数,可以有效防止由于高频抓取导致的网站卡死或数据库崩溃。

操作步骤:

1. 在Nginx配置文件的http块中(通常在nginx.conf主配置文件中),定义限流区域。建议添加在http块的开头部分。

```nginx 定义一个名为my_limit的限流区域,以二进制远程地址存储,内存分配10M,平均处理速率每秒1个请求 limit_req_zone $binary_remote_addr zone=my_limit:10m rate=1r/s; ```

2. 回到网站对应的server块配置文件中,在location / { ... }内部添加限流规则。

```nginx location / { 应用限流规则,允许瞬时爆发5个请求,超过则直接拒绝 limit_req zone=my_limit burst=5 nodelay; 其他原有配置... try_files $uri $uri/ /index.php?$query_string; } ```

3. 测试配置并重载Nginx。

```bash nginx -t nginx -s reload ```

参数详解:

zone=my_limit: 调用刚才定义的限流区域。

burst=5: 设置桶的大小为5。允许用户在不超过1r/s的基础上,瞬间并发5个请求。

nodelay: 超过burst限制的请求不进行延迟处理,直接拒绝。这对于防御恶意爬虫非常关键,因为爬虫不需要排队等待,直接拒绝能节省服务器连接资源。

四、迅睿CMS后台IP安全策略设置

迅睿CMS后台自带了IP黑名单功能,对于已经确认的恶意抓取IP,可以直接在系统后台进行封禁,无需操作服务器配置文件。

操作步骤:

1. 登录迅睿CMS后台管理界面,默认地址为/admin.php

2. 点击顶部菜单栏的【系统】,进入【系统设置】。

3. 在左侧菜单中找到【安全设置】选项卡。

4. 找到【IP黑名单】配置项。在此处输入需要禁止访问的IP地址。

5. 输入格式支持单个IP或IP段,每行一个。例如:

```text 192.168.1.100 192.168.1.0/24 10.0.0.0/8 ```

6. 点击底部的【保存】按钮。

注意:

此功能主要针对HTTP层的请求拦截。如果攻击者使用了CDN或高匿代理,真实IP可能被隐藏,此时该方法效果有限,需结合Nginx层的$http_x_forwarded_for参数进行配置,但这需要更复杂的Nginx规则。

五、在入口文件中添加PHP层UA检测

为了防止某些穿透了Nginx规则的请求(例如Nginx配置错误或未生效),在PHP入口文件增加最后一道检测代码是必要的。迅睿CMS的入口文件是index.php

操作步骤:

1. 打开网站根目录下的index.php文件。

2. 在标签之后的第一行,粘贴以下代码:

```php // PHP层简易爬虫拦截 $ua = $_SERVER['HTTP_USER_AGENT']; // 定义不允许的UA关键词 $block_ua = ['bot', 'spider', 'crawl', 'curl', 'python', 'java', 'slurp', 'scanner']; // 检查UA是否为空或包含关键词 if (empty($ua) || preg_match('/' . implode('|', $block_ua) . '/i', $ua)) { // 返回403并终止脚本 header('HTTP/1.1 403 Forbidden'); exit('Access Denied'); } ```

3. 保存文件。

原理说明:

这段代码会在任何PHP程序执行前运行。它获取请求头中的User-Agent,如果发现UA为空(通常是非浏览器的脚本)或者包含预定义的敏感词(如bot, spider),则直接输出403错误并退出。这能阻止针对PHP动态页面的恶意请求。

六、效果验证与测试

配置完成后,必须进行验证以确保规则已生效且未误伤正常用户。

测试步骤:

1. 测试正常访问: 使用浏览器打开网站首页,确保能正常访问。

2. 测试UA拦截: 使用Linux终端或Postman发送请求,模拟恶意爬虫。

```bash 模拟一个包含Python关键词的UA curl -I -A "Python/3.9 https://你的域名" ```

预期结果:返回HTTP/1.1 403 Forbidden

3. 测试空UA拦截:

```bash 模拟空UA curl -I -A "" https://你的域名 ```

预期结果:返回HTTP/1.1 403 Forbidden

4. 测试频率限制: 使用ab工具进行压力测试。

```bash 安装httpd-tools后执行,发送100个并发请求 ab -n 100 -c 100 https://你的域名/ ```

预期结果:在请求达到一定数量后(根据Nginx配置的burst值),开始出现大量的403或503错误,证明限流生效。

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图