AdvancedBlockIP-专为Typecho设计的高级IP访问控制插件

专为Typecho设计的高级IP访问控制插件,提供全方位的网站安全防护。支持多种工作模式、智能威胁检测、访问间隔控制等高级功能,让您的网站安全无忧。

核心功能

多种工作模式

  • 黑名单模式:拦截指定的恶意IP地址

  • 白名单模式:仅允许受信任的IP访问

  • 智能模式:自动识别和拦截可疑访问

黑名单处理选项

  • 完全禁止访问:彻底拦截黑名单IP

  • 限制访问频率:仅限制黑名单IP的访问间隔

访问间隔控制

  • 设置IP访问间隔时间(默认10秒)

  • 防止恶意快速请求和暴力破解

  • 基于内存缓存的高性能检测

智能威胁检测

  • 访问频率异常:检测短时间内过度访问

  • User-Agent异常:识别可疑工具和脚本

  • User-Agent白名单:支持可信任User-Agent的完整匹配和部分匹配

  • 来源异常:检测恶意referer和攻击关键词

  • 行为模式异常:识别异常的访问模式

独立控制台

  • 专业的安全控制台界面

  • 24小时拦截趋势图表

  • 详细的拦截统计分析

  • 实时日志记录和分页浏览

多种IP规则支持

  • 单个IP192.168.1.100

  • IP范围192.168.1.1-50

  • 通配符192.168.1.*

  • CIDR网段192.168.1.0/24

User-Agent白名单功能

插件新增了强大的User-Agent白名单功能,为可信任的用户代理提供全面保护:

功能特点

  • 完整匹配:支持完整User-Agent字符串的精确匹配

  • 部分匹配:支持关键词的部分匹配,灵活识别

  • 不区分大小写:匹配过程不区分大小写,提高兼容性

  • 支持注释:可在配置中添加注释,便于管理

  • 智能集成:与智能检测模式无缝集成,优先级最高

  • 自动跳过检测:白名单User-Agent自动跳过所有异常检测

配置格式

# 完整User-Agent字符串(完整匹配)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36

# 关键词(部分匹配)
Googlebot          # Google搜索引擎
Bingbot            # Bing搜索引擎
BaiduSpider        # 百度搜索引擎
chrome             # 包含chrome的User-Agent
safari             # 包含safari的User-Agent

# 移动设备
iPhone
Android

# 开发工具(谨慎添加)
Postman
curl

工作原理

  1. 优先级最高:在所有检测之前首先进行User-Agent白名单检查

  2. 完整匹配优先:先尝试完整User-Agent字符串匹配

  3. 部分匹配补充:如果完整匹配失败,再进行关键词部分匹配

  4. 自动放行:匹配成功的请求直接跳过所有后续检测

  5. 智能集成:与现有的IP白名单、智能检测等功能完美配合

预览

后台效果

image.png

image.png

image.png

被拦截效果

image.png

安装指南

环境

Typecho 1.2.1 php 8.0

第一步:上传插件

将插件解压到 usr/plugins/AdvancedBlockIP/ 目录

第二步:启用插件

在Typecho后台的"插件管理"页面启用插件

第三步:基础配置

  1. 选择工作模式(推荐智能模式)

  2. 设置访问间隔限制(默认10秒)

  3. 将自己的IP添加到白名单

  4. 配置User-Agent白名单(推荐添加常用搜索引擎爬虫)

  5. 根据需要配置黑名单

配置说明

工作模式

  • 黑名单模式:默认允许所有访问,拦截指定IP

  • 白名单模式:默认拦截所有访问,仅允许指定IP

  • 智能模式:基于行为分析自动检测威胁

黑名单处理模式

  • 完全禁止访问:黑名单IP无法访问网站

  • 限制访问频率:黑名单IP受访问间隔限制

访问间隔设置

  • 单位:秒

  • 范围:0-3600(0为不限制)

  • 推荐:10-30秒

调试模式

  • 记录详细的运行日志到服务器error_log

  • 包含IP访问记录、规则匹配过程、智能检测触发原因等

  • 建议仅在排查问题时开启

User-Agent白名单配置

  • 配置位置:插件设置页面的"User-Agent白名单"文本框

  • 格式要求:每行一个User-Agent规则

  • 注释支持:使用 # 开头的行作为注释

  • 匹配方式:支持完整匹配和部分匹配(不区分大小写)

  • 优先级:在所有检测之前执行,优先级最高

  • 建议配置

    • 搜索引擎爬虫(Googlebot、Bingbot、BaiduSpider等)

    • 常用浏览器关键词(chrome、firefox、safari等)

    • 移动设备标识(iPhone、Android等)

    • 可信任的监控工具

控制台功能

统计概览

  • 今日拦截数量

  • 总计拦截数量

  • 活跃IP统计

  • 拦截类型分析

24小时趋势图

  • 按小时显示拦截趋势

  • 鼠标悬停显示详细数据

  • 可视化安全状态

拦截原因统计

  • 黑名单拦截

  • 访问过频

  • 智能检测

  • 非白名单等

最活跃IP

  • 显示拦截次数最多的IP

  • 便于识别持续攻击源

  • 支持快速加入黑名单

详细日志

  • 完整的拦截记录

  • 时间、IP、原因、UA等信息

  • 分页浏览和搜索

  • 一键清空日志

  • 支持删除当前页日志

高级功能

自定义拦截消息

支持HTML格式的自定义拦截提示页面

行内注释支持

在IP规则后添加行内注释,不会影响规则匹配

192.168.1.100  # 这是行内注释,不会影响规则匹配
10.0.0.0/8     # 私有网络,内部使用

邮件通知

配置管理员邮箱接收安全警报(需要配合邮件插件)

向后兼容

自动兼容旧版本的配置字段,无缝升级

控制台访问

插件启用后,在后台顶部导航栏会出现"IP防护控制台"链接,点击即可进入专业的安全管理界面。

插件工作流程

插件按照以下优先级和流程处理每个访问请求:

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

  1. 白名单检查 - 最高优先级,直接放行

  2. 黑名单检查 - 第二优先级

    • 完全禁止模式:直接拦截

    • 频率限制模式:智能检测 → 频率控制

  3. 模式处理

    • 智能模式:仅智能检测,通过后直接放行

    • 白名单模式:非白名单直接拦截

    • 黑名单模式:记录访问并放行

完整检测流程

访问请求 → 白名单检查 → 黑名单检查 → 智能检测 → 放行
             ↓           ↓          ↓
           直接放行    拦截/限频    自动拉黑

两种频率机制的区别

机制访问频率控制频率异常检测
目的限制黑名单IP威胁识别
适用范围仅黑名单IP所有IP(除白名单)
触发条件访问间隔过短异常访问模式
处理方式暂时拒绝访问自动拉黑IP
日志标记访问过频频率异常
配置项accessInterval固定规则

智能检测触发条件

  • 快速访问:1秒内访问5个不同URL

  • 短期频繁:5秒内访问10次

  • 中期频繁:10秒内访问20次

  • 长期频繁:60秒内访问60次

安全建议

  1. 首次配置:将自己的IP加入白名单

  2. User-Agent白名单:添加常用搜索引擎爬虫和可信浏览器

  3. 测试环境:在测试环境充分验证配置

  4. 定期检查:定期查看控制台统计和日志

  5. 备份配置:定期备份插件配置和数据库

  6. 合理设置:根据网站访问量调整间隔时间

  7. 调试模式:仅在排查问题时开启调试模式

  8. 日志维护:定期清理过期日志

  9. 白名单维护:定期检查和更新User-Agent白名单,移除不再需要的条目

更新日志

v2.4.1 (2025-10-09) - 重要安全更新

  • 🔧 修复:修复白名单模式下白名单为空时拦截所有IP的严重问题

  • 🔧 修复:修复 navBar() 函数参数错误导致的后台无法访问问题

  • 🛡️ 新增:管理后台访问自动放行机制,防止管理员被误拦截

  • ⚡ 优化:大幅放宽智能模式频率检测阈值,减少误判:

    • 1秒内访问限制:2个URL → 5个URL

    • 5秒内访问限制:3次 → 10次

    • 10秒内访问限制:6次 → 20次

    • 新增60秒内访问60次的检测

  • 🔒 安全:白名单模式下若白名单为空,自动放行并记录警告日志

  • 📝 改进:增强调试日志,便于排查问题

v2.4.0 (2025-08-13)

  • 新增:User-Agent白名单功能,支持完整匹配和部分匹配

  • 新增:User-Agent白名单与智能检测模式无缝集成,优先级最高

  • 新增:User-Agent白名单支持注释功能,便于管理和维护

  • 优化:智能检测流程,白名单User-Agent自动跳过异常检测

  • 改进:配置界面新增User-Agent白名单设置项,提供详细说明和示例

  • 功能:白名单User-Agent在智能检测中享有最高优先级,确保可信用户代理不被误拦截

v2.3.3 (2025-07-22)

  • 修复:解决了访问记录表中的主键冲突错误,避免出现"Duplicate entry for key PRIMARY"错误日志

  • 优化:重构了访问记录处理逻辑,现在为每个IP仅保留最新的访问记录

  • 新增:数据库结构修复工具,可自动修复并优化表结构

  • 优化:记录访问历史时增加了错误处理和异常捕获机制

  • 改进:表结构优化,正确设置了主键和唯一索引

v2.3.2 (2025-07-11)

  • 修复:修复了因插件首次激活或配置不存在时,访问网站会导致程序崩溃的致命错误。

v2.3.1 (2025-07-10)

  • 修复:修复了在IP防护控制台中,手动添加的黑名单条目不显示添加时间戳的问题。

  • 修复:修复了禁用再启用插件后,已保存的配置(黑名单/白名单)无法在设置页面正确显示的问题。

  • 修复:修复了在IP防护控制台删除黑名单条目后,由于换行符处理不当导致列表格式错乱的问题。

  • 优化:通过在多个关键位置(headerfooterhandle等)增加钩子,增强了IP拦截功能的触发几率,确保其在各种场景下都能可靠生效。

v2.3.0 (2025.06.23)

  • 新增:全新的“IP防护控制台”,提供可视化界面,方便用户实时查看和管理黑名单、白名单、拦截日志和访问日志。

  • 新增:日志分页功能,优化大量日志查看体验。

  • 修复: 修复了插件在Typecho 1.2.1及PHP 8.0+环境下后台菜单不显示的问题。

  • 新增: 引入兼容适配器,解决了新版Typecho的类命名空间问题。

  • 改进后台控制台菜单项的添加方式,解决404错误

  • 增强了类加载适配器,提高了与各种环境的兼容性

  • 修复大量插件激活/停用相关的问题

  • 代码结构优化,改进了错误处理机制

v2.2.0 (2025.06.06)

  • 优化IP规则匹配机制,正确处理注释

  • 改进智能检测的触发条件,降低误判率

  • 增强频率异常检测精度

  • 优化User-Agent和Referer异常检测

  • 新增调试模式,便于排查问题

  • 修复多处潜在的安全隐患

  • 代码重构,提升性能和稳定性

v2.1.0 (2025.05.13)

  • 新增访问间隔控制功能

  • 新增黑名单处理模式选择

  • 新增独立的安全控制台

  • 新增24小时拦截趋势图表

  • 改进日志记录机制(仅记录拦截)

  • 优化统计信息显示

  • 提升性能和稳定性

v2.0.0 (2025.04.05)

  • 智能检测模式

  • 多种IP规则格式支持

  • 自动黑名单功能

  • 实时日志记录

  • 24小时统计图表

  • 控制台管理界面

问题反馈

如遇到问题或有功能建议,请:

  1. 检查环境是否满足要求

  2. 查看控制台是否有错误日志

  3. 确认配置是否正确

  4. 联系插件作者寻求支持

作者博客:https://blog.ybyq.wang/



标签: Typecho

添加新评论 »