站点维护 — 为 Halo 博客打造的全能维护与安全插件

让维护页面成为品牌展示的一部分,让安全防护在后台默默守护。

前话

作为博客站长,你一定遇到过这些场景:

  • 服务器升级需要临时关闭网站

  • 新功能上线前需要测试环境

  • 遭遇恶意爬虫和攻击需要紧急防护

  • 想在特定时间段自动开启维护

  • 想了解访客从哪来、用什么设备、看了哪些内容

传统做法是直接返回一个简陋的 503 页面,用户体验极差;安全防护则需要额外配置 Nginx 或接入第三方 WAF。

这款插件把维护管理安全防护数据分析三大能力整合到一个后台面板中,开箱即用。

维护管理

高度可定制的维护页面

插件提供了丰富的页面定制选项,让维护页面也能传递品牌调性:

  • 自定义 Logo 和全屏背景图

  • 吉祥物 + 对话气泡(固定在页面角落,增添趣味)

  • 实时倒计时显示(天:时:分:秒)

  • 维护进度条

  • 看板娘:不用登录即可查看当前站点的数据,适配所有主题

  • 邮件订阅表单(收集访客邮箱,维护结束后通知)

  • 社交链接(GitHub / Twitter / Email)

  • 🆕 登录入口按钮(与社交链接并排显示,维护期间也能快速进入后台)

  • 友情链接展示(需安装 Halo 友链插件,维护期间引导访客跳转友站)

  • 浮动粒子动效 + 脉冲光圈动画

  • 滚动指示器 + 返回顶部按钮

  • 完整的移动端响应式适配

🆕 维护期间登录入口

开启「允许登录访问」开关后,插件会:

  1. 在维护页面的社交链接区域自动添加一个**登录图标按钮**,访客点击即可跳转到 /login 页面

  2. 同时放行 /console(后台管理)/uc(用户中心)/login(登录)/logout(登出)/signup(注册)/password-reset(密码重置)等路径

  3. 管理员和用户可以在维护期间正常登录和使用后台,无需手动配置路径白名单

这个功能特别适合团队协作场景:站点对外维护,但团队成员仍可正常登录后台进行内容编辑和系统管理。

12 套 CSS 变量模板系统

内置 12 种精心调色的风格模板,一键应用:

赛博朋克 · 温暖橙色 · 清新绿色 · 紫色梦幻 · 深海蓝 · 玫瑰金 · 极光绿 · 暗夜红 · 彩虹渐变 · 湖水蓝 · 日落橙粉 · 星空紫蓝

每套模板通过完整的 CSS 变量体系 覆盖维护页面的所有视觉元素,包括:

变量分类

覆盖范围

主色调

--color-primary--color-bg--color-title--color-text

粒子与动效

--color-particle--color-ring

倒计时组件

--countdown-bg--countdown-num--countdown-label--countdown-sep

输入框与按钮

--input-bg--input-border--btn-bg--btn-text--btn-hover-bg

徽章

--badge-bg--badge-text

社交链接

--social-bg--social-border--social-icon--social-hover-bg

吉祥物气泡

--bubble-bg--bubble-text--bubble-tail

友链卡片

--card-border--card-hover-border--card-avatar-bg

返回顶部

--back-top-bg--back-top-border--back-top-color

选择模板后,所有变量自动填充到自定义 CSS 区域。你也可以在模板基础上进一步微调,或完全自定义 CSS 实现独一无二的维护页面风格。

灵活的维护策略

支持多种维护调度方式,多策略可同时存在,按优先级匹配:

  • 永久维护:手动开启/关闭,适合临时维护

  • 定时维护:设置开始和结束时间,到期自动关闭

  • 每日维护:每天固定时间段自动开启(如凌晨 2:00-4:00)

  • 每周维护:指定周几的特定时间段(如每周日凌晨)

每条策略可独立配置页面标题、提示消息、IP 白名单、路径白名单,以及维护结束后是否自动发送通知。

邮件订阅与上线通知

开启邮件订阅后,访客可以在维护页面留下邮箱。当维护结束时,插件通过 Halo 内置的通知系统自动向所有订阅者发送「网站已恢复上线」的邮件通知。

后台提供完整的订阅者管理:查看列表、静音/取消静音单个订阅者、手动触发通知发送。

拦截统计

后台提供维护期间的拦截数据统计:

拦截统计

  • 拦截统计:总拦截数、今日拦截、维护拦截、订阅用户

  • 趋势:拦截趋势、时段分布

  • 排行:热门IP排行、最近记录、维护历史

安全防护(WAF)

内置轻量级 Web 应用防火墙。

15 大攻击分类检测

覆盖主流 Web 攻击类型,内置 25+ 条精调检测规则:

分类

说明

SQL 注入

经典注入、恒真式、危险函数

XSS

Script 标签、事件处理器、危险标签

路径遍历

目录穿越、空字节注入

命令注入

管道/分号注入、危险函数

远程执行(RCE)

Java 特有攻击(Log4Shell/JNDI、Spring4Shell/SpEL、OGNL)

SSRF

服务端请求伪造

文件上传

危险扩展名检测

文件包含

本地/远程文件包含

XXE

XML 外部实体注入

反序列化

Java 反序列化攻击

模板注入(SSTI)

服务端模板注入

扫描器检测

自动化工具 UA 识别、工具签名

协议异常

CRLF 注入、Unicode 超长编码、HTTP 走私

敏感路径

隐藏文件、备份文件、管理面板探测

自定义

用户自行添加的规则

模块级配置

每个攻击分类可独立配置检测模式和风险等级动作:

  • 四种模式:严格(全部拦截)、默认(低危仅记录)、自定义、禁用

  • 按高/中/低危分别设置动作(拦截 / 仅记录)和是否写入日志

  • 支持一键快速切换模式

智能 IP 封禁

  • 分级自动封禁:高危 3 次触发封禁 60 分钟,中危 5 次/30 分钟,低危 10 次/10 分钟

  • 递进封禁:同一 IP 反复被封,封禁时长自动翻倍(最高 8 倍)

  • 手动封禁:管理员可手动封禁指定 IP 并设置时长

  • 封禁管理面板:查看所有被封 IP、剩余时间、一键解封

CC 防护

支持按规则配置请求频率限制:

  • 每分钟最大请求数

  • 自定义封禁时长

  • 自定义封禁提示页面

  • 支持路径级和全局级限流

三种运行模式

  • 防护模式:检测到攻击立即拦截

  • 观察模式:仅记录不拦截,不累积攻击计数,适合调试和规则调优

  • 关闭:完全关闭 WAF

🆕 安全日志

完整的攻击事件记录,支持两层存储:

  • 基础层:时间、IP、路径、方法、规则名、攻击分类、严重程度、动作

  • 详情层(按需加载):完整请求头、请求体、响应状态、响应头、Cookie、Referer 等原始数据

  • 事件去重:同一 IP + 同一规则 60 秒内只写一次数据库,降低高频攻击下的写入压力

日志详情弹窗:

  • 攻击分类标签 + 攻击 URL 顶部展示

  • 结构化字段列表(攻击者 IP、命中规则、攻击时间、请求方法、攻击类型等)

  • 请求/响应报文双 Tab 切换,语法高亮显示(HTTP 方法绿色、Header 名橙色)

  • 一键复制 cURL 命令,方便复现和调试

  • 完整报文 / 基础信息标记

🆕 IP 地理位置识别

插件内置 IP 地理位置自动识别服务:

  • 自动扫描:每 60 秒自动扫描访问 Top IP、攻击 Top IP、拦截 Top IP 列表中的新 IP

  • 智能缓存:内存缓存 + 数据库持久化,相同 IP 只查询一次 API,避免重复请求

  • 地域聚合:支持按国家/省份/城市聚合统计,生成地域排行

  • API 限流保护:每次最多查询 5 个新 IP,请求间隔 500ms,避免被 API 限流

  • 公网 IP 过滤:自动排除内网 IP(127.0.0.1、10.x、192.168.x、172.16-31.x)

在 WAF 日志和封禁管理中,IP 地址旁会显示对应的地理位置信息(如:中国 · 广东 · 深圳),帮助管理员快速判断攻击来源。

防护统计

  • 总请求数、总攻击数、今日攻击、CC 拦截数

  • 攻击 IP 数、被封 IP 数

  • 4xx/5xx 错误率、当前 QPS

  • 每日/每小时攻击趋势图表

  • 攻击分类分布饼图

  • Top 攻击 IP 排行

  • 最近攻击事件列表

  • 10 秒自动刷新

白名单机制

  • 全局 IP 白名单:信任的 IP 跳过所有检测

  • 规则级白名单:每条规则可单独配置 IP 和路径白名单

  • 已登录管理员自动降低检测级别,避免文章发布等正常操作被误拦

数据分析

独立的多维度访客分析模块,无需接入第三方统计服务。

流量概览

  • 总访问量、今日访问、独立 IP 数

  • 每日访问趋势图表(支持今日/本周/本月/全部切换)

  • 每小时访问分布

  • 热门页面排行(带进度条可视化)

  • 活跃 IP 排行

  • 桌面端/移动端占比

  • 平均每 IP 访问量

访客画像

  • 浏览器分布(Chrome、Firefox、Safari、Edge 等)— 环形图

  • 操作系统分布(Windows、macOS、Linux、iOS、Android)— 环形图

  • 设备类型分布(桌面端、移动端、平板)— 带百分比的可视化卡片

来源分析

  • 流量来源分类(直接访问、搜索引擎、社交媒体、外部链接、站内跳转)— 环形图 + 渠道柱状图

  • Top 来源域名排行(带进度条可视化)

内容分析

  • 文章/页面访问量统计

  • 分类访问分布

  • 标签访问分布

  • 文章热度排行

  • 页面热度排行

数据策略

  • 30 天滚动窗口,自动清理过期数据

  • 内存缓存 + 数据库采样的混合策略:同一 IP 同一小时内只写一次数据库,实时统计走内存

  • LRU 缓存限制大小,防止高并发场景下内存溢出

🆕 UI 美化

后台管理面板

插件后台采用现代化的卡片式 UI 设计,告别传统表单的枯燥感:

  • 卡片化布局:每个功能模块独立卡片,圆角 + 微阴影 + hover 效果

  • 渐变图标:每个模块标题配有渐变色背景图标,视觉层次分明

  • 自定义组件:自研 CustomSelect 下拉选择器、Toggle 开关、进度条等组件,风格统一

  • 图片预览:Logo、背景图、吉祥物支持实时预览和一键移除

  • 响应式设计:三栏图片设置网格,自适应不同屏幕宽度

WAF 日志详情

  • 雷池 SafeLine 风格的攻击详情弹窗

  • 请求/响应报文语法高亮

  • 攻击分类彩色标签体系

  • 严重程度分级色彩(高危红、中危橙、低危灰)

封禁管理

  • IP 列表卡片化展示,每条记录显示 IP、触发规则、剩余封禁时间

  • 手动封禁区域独立卡片,输入 IP + 时长即可操作

  • 解封按钮 hover 红色渐变效果

高级设置

  • 自定义 CSS 注入(维护页面)

  • 字体选择(多种中英文字体可选,包括 LXGW WenKai 等网络字体)

  • 社交链接配置(GitHub / Twitter / Email)

  • HTTP 状态码选择(503 或 200)

  • 一键重置统计数据

拦截机制

插件在请求到达业务逻辑之前进行拦截:

  • 后台管理不受影响/console 路径白名单)

  • API 接口正常工作/apis 路径白名单)

  • 静态资源不被拦截(自动识别 .js.css.png 等 40+ 种扩展名)

  • 管理员登录后可正常访问全站

  • 支持自定义 IP 和路径白名单

  • 🆕 登录/后台路径由「允许登录访问」开关统一控制

快速上手

  1. 下载最新版本的 JAR 文件

  2. 在 Halo 后台 → 插件 → 安装插件,上传 JAR 文件并启用

  3. 进入插件管理页面,在「维护管理」→「策略管理」中创建维护策略

  4. 在「基本设置」中配置页面样式,选择主题模板

  5. 启用策略即可生效

  6. 如需安全防护,进入「安全防护」→「WAF 规则」,内置规则默认已启用,可按需调整模块配置和运行模式。

插件一览

维护页面

5b196cba-b627-44a5-9a42-e26c97a0a1a6.png

防护页面

5e3fe498-fb59-48a5-b7e5-913204542586.png

看板娘~

5e86beb2-eced-4628-b857-265dbc1aeea9.png
cd036086-f081-4b6a-a713-7363a0d2ca40.png

拦截统计

abed581f-ddf1-4707-a66c-005518fa1ac1.png

策略管理

92257ca0-f2a2-435e-be31-a5e609bf4153.png

基本设置

1baa13dc-2148-46c9-8165-5a1387565471.png

订阅管理

a40099ad-fba2-47b9-9aac-6a5a62fd81a9.png

流量概览

d220c892-f8ce-4d10-9df5-71db40704fb7.png

访客画像

dee0b4e8-6f2c-45bf-ac7d-3f3f4d4e6fc4.png

流量分析

10c2b72d-d6c7-46e9-84f0-ca76a187654c.png

内容分析

3131c7ee-f60a-4190-b5d2-5bd8020b0025.png

防护统计

f587f36f-1dd0-44e9-8b9c-0d31d0214c01.png
9aae0523-9005-49e9-9de6-1b15cffd084e.png

WAF规则

ebfb8329-fce7-4bc0-9340-b60a2ae5b2b2.png

日志管理

df4e7082-cccf-4411-8c25-ccd5dd988f27.png

封禁管理

4ce4a33e-4f0b-4b10-8b71-23853e5f993b.png

高级设置

81e1bff8-026a-42dc-8a33-746bc5c9283d.png

e4744b29-6ed3-4014-b018-af06577f7633.png
e07f545e-b6b8-4f6b-aff3-021f528babbe.png

写在最后

  • 这款插件的设计理念是:维护页面不应该是冷冰冰的错误提示,而应该是与用户沟通的桥梁。

  • 通过精美的页面设计、倒计时显示、邮件订阅等功能,即使在网站维护期间,也能给用户留下良好的印象。内置的 WAF 防护为网站安全提供了一道防线,无需额外配置反向代理或第三方服务。多维度的数据分析让你不再依赖外部统计工具就能了解访客行为。

  • 获取方式:注册本站用户,通过本站个人中心获取。