本次为一轮深度代码扫描后的集中修复:33 项已确认问题(安全、稳定性、体验、死代码清理),均经构建、单元测试与真实运行验证。
安全
- 修复 X-Forwarded-For 可伪造导致来源 IP 伪造(高危):此前
--trust-proxy下取 XFF 最左段为真实 IP,攻击者可伪造任意来源绕过登录锁定与应用层限流。现改为「可信代理名单从右往左跳过取第一个非可信地址」,新增--trusted-proxies(逗号分隔的 CIDR / 裸 IP)。⚠️ 多层反代部署需用--trusted-proxies配置边缘节点公网 IP(deploy/moss.sh反代模式安装会询问);不配置则安全降级为取 XFF 最右段(不可伪造)。 - 登录失败计数
loginAttempts增加周期回收,防止只失败从不成功的 IP 条目无界堆积致内存耗尽。 - token / 初始管理密码随机串改用无偏拒绝采样,消除取模偏置。
- 登录校验改为恒定成本(无论用户名是否正确都执行一次 bcrypt 比较)+ 常量时间用户名比较,消除用户名枚举的时序侧信道。
- 静态文件路径清理改为「先加根再 Clean」,与另一处写法对齐,加固目录穿越防御纵深。
稳定性
- agent 重连后重置网速差值基准,消除断线 / 部署重连后首个上报点的虚高网速毛刺。
- 服务器详情页「实时」图回填历史点后立即触发重渲染,不再需要等下一次上报才显示。
- 前端
fetchServers增加「后到丢弃」守卫、清理重复的重连定时器,消除并发拉取导致的数值短暂回跳。 - 历史采样的 TCP / 进程数改用浮点均值后取整,消除系统性向下取整偏差。
- 负载告警迟滞带改为比例式,修复低阈值(≤5)下永远收不到「恢复」通知。
- 离线告警轮询改用
NewTicker+Stop。 - localStorage 读写增加异常兜底,存储被禁用时不再白屏;主题支持跨标签页同步。
体验
- 国旗组件对空国家码判空、对国家码统一小写,修复未识别 / 大写国家码时渲染破损国旗框。
- 后台数字输入失焦即钳制到合法区间;保存后回读后端钳制结果,界面不再与库中真值长期分歧。
- 修改密码补充前端「至少 6 位」校验,与文案及后端规则一致。
- 主页分组排除空值与「全部」字面碰撞,消除重复 React key 与筛选错乱。
fmtPercent增加非有限值兜底(NaN / Infinity 不再显示为NaN%)。
清理
- 移除死代码:UDP 连接数全链路采集(省去每个上报周期一次系统调用)、未使用的类型字段(
lastSeen/createdAt/LivePoint.load1/udp)、未使用的组件 props(Ticker的className/duration、ChartCard的height)、Login的失效错误分支。
升级提醒
- 网速重连、协议注释等修复在 agent 端,需更新各监控机上的 agent 二进制方可生效(仅更新服务端无效)。
- 新增
server/ratelimit_test.go,覆盖 realIP 的来源 IP 伪造防护(9 个用例)。
Full Changelog: v0.4.5...v0.5.0