AI摘要

本文介绍了一款Typecho高级IP访问控制插件——AdvancedBlockIP,它具有智能防护模式、精确的IP规则匹配和自动化管理功能。插件能够自动拦截恶意爬虫、暴力破解和垃圾评论等网络威胁,支持多种IP地址格式,并提供实时日志记录和可视化统计。用户可以根据网站类型选择合适的工作模式和黑名单处理方式,并设置访问间隔。插件还提供了详细的使用建议和监控要点,以确保网站安全。最新版本v2.2.0优化了IP规则匹配和智能检测机制,提高了拦截准确性,减少了误判,并新增了调试模式。

前言

前段时间给博客加了一个访客统计才发现有好多采集IP等,特点就是:一秒读一个页面,两分钟就把我网站所有页面、标签、文章都访问了个遍,还有广东的更过分,多个ip同时访问等,总之不像是真人访问的。

然后我就找了一个Typecho黑名单拦截的插件,十年前的BlockIP,作者就已经很久没更新了。我就想要是自动拦截并加入黑名单的应该很好用,于是就进行了改造。

改造期间我在知乎问了一下这个情况,知道了一个叫长亭雷池的,但是它里面的智能防护太严格,甚至把我自己的后台的编辑文章,外观设置等很多行为都进行检测拦截,然后设置了白名单效果也不太好。可能完美的设置需要升级或者我还没弄明白。所以就继续改造。

到现在自己也内测了几周,感觉没什麽问题了,就整理出这个AdvancedBlockIP。由于拦截依据和频率等检测出于我自己的看法经验,可能效果欠佳,希望各位能够在Github提Issues或者在评论区提出

介绍

在当今互联网环境下,网站安全变得越来越重要。恶意爬虫、暴力破解、垃圾评论等问题时刻威胁着我们的网站。今天给大家介绍一款强大的Typecho安全插件——高级IP访问控制插件,它能够智能识别并拦截各种网络威胁。

插件预览

后台控制面板



被拦截效果(可自定义html)

插件特色功能

智能防护模式

插件默认启用智能模式,不需要复杂配置就能自动识别以下威胁:

威胁类型 检测机制 自动处理
频率异常 1秒内访问2个不同URL
5秒内访问3次及以上
10秒内访问6次及以上
自动加入黑名单并标记
UA异常 检测可疑的用户代理
识别爬虫工具、脚本程序等
自动加入黑名单并标记
来源异常 识别包含攻击关键词的来源页面 自动加入黑名单并标记
行为模式异常 分析访问行为,发现自动化攻击模式 自动加入黑名单并标记

精确的IP规则匹配

支持多种IP地址格式,满足不同场景需求:

规则类型 格式示例 说明
单个IP 192.168.1.100 精确匹配单个IP地址
IP范围 192.168.1.1-50 匹配指定范围内的IP
单个通配符 192.168.1.* 匹配最后一段的所有IP
多个通配符 192.168.*.* 匹配多段的所有IP
CIDR格式 192.168.1.0/24 匹配指定网段的所有IP
行内注释 192.168.1.100 # 备注 支持在规则后添加注释

自动化管理

  • 自动黑名单:智能检测触发时自动将威胁IP加入黑名单
  • 分类标记:按检测类型自动标记【频率异常】【UA异常】【来源异常】【行为异常】
  • 访问间隔控制:防止过于频繁的访问请求
  • 实时日志记录:详细记录所有拦截事件
  • 可视化统计:24小时趋势图表,一目了然

安装及更新步骤

  1. 将插件文件解压到Typecho的插件目录:/usr/plugins/AdvancedBlockIP/
  2. 在Typecho后台的"控制台 → 插件"页面找到"AdvancedBlockIP",点击激活
  3. 激活后插件会自动创建数据表,默认已选择智能模式,基本上可以直接使用
  4. 在控制台中找到IP防护控制台,进入可查看详细信息
  5. 直接用新版本覆盖掉旧版本即可

配置建议

工作模式选择

模式 适用场景 特点
智能模式 大多数网站 黑白名单同时生效
自动识别威胁
推荐使用
黑名单模式 开放性网站 默认允许访问
仅拦截指定IP
白名单模式 内部系统 默认拦截访问
仅允许指定IP

黑名单处理方式

处理方式 适用场景 效果
完全禁止访问 恶意攻击IP 彻底拦截黑名单IP
显示拦截页面
限制访问频率 爬虫、采集器 限制访问间隔
减轻服务器压力

访问间隔设置

  • 默认值:10秒
  • 高流量网站:5-7秒
  • 个人博客:15-20秒
  • 注意:此设置仅影响黑名单IP的访问频率限制

调试模式

  • 记录详细的运行日志到服务器error_log
  • 包含IP访问记录、规则匹配过程、智能检测触发原因等
  • 建议仅在排查问题时开启,避免日志文件过大

"访问过频"和"频率异常"详细介绍

插件提供了两种不同的频率控制机制,它们有着不同的使用场景和工作原理:

两种频率控制机制对比

特性 访问过频(Rate Limiting) 频率异常(Frequency Anomaly)
适用对象 仅黑名单中的IP 所有非白名单IP
工作模式 黑名单处理模式为"限制访问频率"时生效 智能模式下自动生效
实现原理 检查访问间隔是否小于设定值 基于行为模式分析,检测异常访问模式
检测方式 简单时间间隔检测 多维度分析(访问次数、URL数量等)
触发条件 访问间隔小于设定值(默认10秒) 1秒内访问2个不同URL
5秒内访问3次及以上
10秒内访问6次及以上
特殊处理 黑名单IP限制更严格(间隔为普通设置的10%) 自动将IP加入黑名单,记录检测类型和时间
处理方式 临时拦截访问,不加入黑名单 永久加入黑名单并拦截
实现函数 isAccessTooFrequent() checkFrequencyAnomaly()
配置方式 可在插件设置中调整 固定规则,不可配置
日志标记 "黑名单频率限制" "智能检测:频率异常"
使用场景 数据采集程序限速
监控但不完全封禁的IP
合法但高频访问的用户
暴力破解攻击
恶意爬虫和扫描器
自动化攻击工具
DDoS攻击尝试

两种机制的协同工作

这两种机制在插件中协同工作,形成了两层防护:

  1. 第一层防护(频率异常检测)

    • 主动识别恶意行为
    • 自动将威胁IP加入黑名单
    • 提供持久性的保护
  2. 第二层防护(访问过频控制)

    • 对已知威胁IP实施访问频率控制
    • 防止黑名单IP过度消耗服务器资源
    • 允许合法但频繁的访问以受限方式进行

这种双层防护设计使得插件能够既有效拦截真正的威胁,又不会过度影响正常但频繁的访问需求。

插件工作流程

访问检测优先级(从高到低)

  1. 白名单检查 - 最高优先级,直接放行
  2. 黑名单检查 - 第二优先级
    • 完全禁止模式:直接拦截
    • 频率限制模式:智能检测 → 频率控制
  3. 模式处理
    • 智能模式:仅智能检测,通过后直接放行
    • 白名单模式:非白名单直接拦截
    • 黑名单模式:记录访问并放行

详细工作流程图

┌───────────────────┐
│   访问请求开始     │
└────────┬──────────┘
         │
         ▼
┌───────────────────────┐     是     ┌───────────────┐
│   检查IP是否在白名单   ├────────────►│    直接放行   │
└────────┬──────────────┘            └───────────────┘
         │ 否
         ▼
┌───────────────────────┐     否     ┌───────────────────────┐
│  检查IP是否在黑名单    ├────────────►│    检查当前工作模式    │
└────────┬──────────────┘            └───────────┬───────────┘
         │ 是                                    │
         ▼                                       ▼
┌───────────────────────┐           ┌───────────────────────────────┐
│  检查黑名单处理模式    │            │ 智能模式  │白名单模式│黑名单模式│
└────────┬──────────────┘           └─────┬─────┴────┬────┴────┬────┘
         │                                │          │         │
         ▼                                ▼          ▼         ▼
┌───────────┐  完全禁止   ┌───────────┐   ┌─────────┐  ┌─────────┐  ┌─────────┐
│选择处理方式├───────────►│  拦截访问  │   │智能检测  │  │ 拦截访问│   │记录放行 │
└─────┬─────┘            └───────────┘   └────┬────┘  └─────────┘  └─────────┘
      │限制频率                                │
      ▼                                       ▼
┌─────────────────────┐        否      ┌─────────────────┐   是   ┌─────────────┐
│  检查访问是否过于频繁 ├───────────────►│ 检测到威胁行为?  ├───────►│ 加入黑名单   │
└────────┬────────────┘                └─────────────────┘        └──────┬──────┘
         │是                                                             │
         ▼                                                               ▼
┌─────────────────────┐                                    ┌─────────────────────┐
│拦截访问(访问过频)    │                                     │  拦截访问(智能检测)  │
└─────────────────────┘                                    └─────────────────────┘

控制台功能

控制台页面位于后台"控制台"菜单下的"IP防护控制台",提供以下功能:

功能区块 内容 作用
统计概览 今日拦截数
总计拦截数
自动加黑名单数
快速了解安全状况
趋势图表 24小时拦截趋势图 直观展示安全态势
拦截原因 各类拦截原因统计 分析威胁类型分布
活跃IP 拦截次数最多的IP 识别持续攻击源
详细日志 完整拦截记录
分页浏览
一键清空
删除本页日志
深入分析安全事件

更新日志

版本更新对比

版本 更新时间 主要新增功能 主要优化内容
v2.3.0 2025.06.23 兼容性增强 后台菜单项修复
适配器改进
旧版Typecho支持
v2.2.0 2025.06.06 调试模式 IP规则匹配机制优化
智能检测改进
频率异常检测精度增强
UA和Referer检测增强
安全隐患修复
代码重构
v2.1.0 2025.05.13 访问间隔控制功能
黑名单处理模式选择
独立安全控制台
24小时拦截趋势图
日志记录机制改进
统计信息显示优化
性能和稳定性提升
v2.0.0 2025.04.05 智能检测模式
多种IP规则格式支持
自动黑名单功能
实时日志记录
24小时统计图表
控制台管理界面
-

v2.3.0 最新版详细更新内容 (2025.06.23)

类别 更新内容 说明
修复 PHP 8.0兼容性优化 修复了在PHP 8.0环境中使用插件的兼容性问题
修复 Typecho 1.2.1支持 确保插件与Typecho 1.2.1版本完全兼容
优化 后台控制台菜单修复 改进了控制台菜单项的添加方式,解决404错误
优化 类加载适配器增强 增强了与各种环境的兼容性,降低报错概率
修复 插件激活/停用修复 修复了多个与插件生命周期相关的问题
优化 错误处理机制改进 改进了错误处理,提供更详细的错误信息

v2.2.0 更新内容 (2025.06.06)

类别 更新内容 说明
优化 IP规则匹配机制优化 改进规则解析机制,正确处理行内注释,提高匹配准确性
优化 智能检测改进 调整频率异常检测阈值,降低误判率
优化 频率异常检测精度增强 优化检测算法,提高识别准确率
优化 UA和Referer检测增强 更新特征库,改进异常检测逻辑
新增 调试模式 新增可选的调试日志记录,便于排查问题
修复 安全隐患修复 修复多处潜在的安全漏洞
优化 代码重构 优化核心检测流程,提升执行效率和稳定性

使用建议

阶段 建议操作 说明
初次使用 添加白名单
选择智能模式
避免自己被拦截
获得全面保护
日常维护 定期查看日志
清理过期记录
了解安全状况
优化数据库性能
遇到问题 开启调试模式
检查规则配置
获取详细日志
排查配置错误
性能优化 合理设置间隔
定期清理日志
根据流量调整
减少数据库负担

推荐配置

  • 工作模式:智能模式(自动识别威胁)
  • 黑名单处理:根据需要选择完全禁止或频率限制
  • 访问间隔:10秒(仅影响黑名单IP)

监控要点

  1. 智能检测:重点关注自动拉黑的IP
  2. 黑名单管理:定期检查黑名单中的IP
  3. 日志维护:定期清理过期日志
  4. 白名单维护:及时将重要IP加入白名单

常见问题

Q: 如果误拦截了正常用户怎么办?
A: 将该IP添加到白名单或者手动从黑名单中删除即可,白名单优先级最高。

Q: 插件会影响搜索引擎收录吗?
A: 不会,插件内置了对主流搜索引擎爬虫的识别和保护。

Q: 可以同时使用多种工作模式吗?
A: 智能模式已经整合了黑白名单功能,推荐直接使用智能模式。

Q: 日志会不会越来越多占用空间?
A: 可以在控制台页面一键清空历史日志,或者定期清理。


可能有些同学安装启用后会提示“插件启用失败”,只需刷新页面再返回一下,插件即可启用成功。

总结

最新版本v2.2.0优化了IP规则匹配和智能检测机制,显著提高了拦截的准确性,减少了误判,同时新增的调试模式也让问题排查变得更加简单。无论你是个人博客还是商业网站,这款插件都能为你提供可靠的安全保护。
有使用问题或者改进建议请在评论区提出

Github地址:

此内容需要评论后才能查看哦 (*^▽^*)
https://github.com/BXCQ/Advan...

快速下载:

此内容需要评论后才能查看哦 (*^▽^*)
https://pan.xunlei.com/s/VOTR...


如果觉得我的文章对你有用,请随意赞赏
END
本文作者:
文章标题:Typecho高级IP访问控制插件:自动拉黑和频率限制
本文地址:https://blog.ybyq.wang/archives/639.html
版权说明:若无注明,本文皆Xuan's blog原创,转载请保留文章出处。