Skip to content

v1.11.7

Choose a tag to compare

@github-actions github-actions released this 11 Oct 03:27
· 56 commits to main since this release

清掉三笔已知项,其中第一笔会让你看到假信息

一、一个键、一个来源(MaxMind 与 DB-IP 不再抢同一个设置键)

此前两家共用 geo_city_url / geo_asn_url:你填 DB-IP 的 .mmdb.gz,
MaxMind 那两个来源也去下同一个文件,再把它当 .tar.gz 解 ——
日志里于是出现两条 cannot unpack 的 WARN。
无害(DB-IP 照常成功),但它把"配置正确"与"配置错误"变得长得一样。

现在来源收敛成 三条(城市 / ASN / Tor),落盘名由内容决定:
读头部认出包装,看到 gzip 再解压出几百字节看里面是不是 tar。
⇒ 你填哪家的地址都能认出来,也不必再为两家各配一个键。

二、在线风险库的 key 按凭据处理

  • hub 侧:加进 SECRETS,只报"设没设",不再把值回显给面板;
  • 面板侧:按密码框显示(••••••••),并且只在输入框非空时才提交这个键 ——
    否则会把已保存的凭据覆盖成空串,而且看不出来(界面无变化、抓取静默失效);
  • 另加一个「清除 Key」——在此之前,用户其实没有正当途径把 key 删掉。

三、在线查询的返回值做成三态(没去查 / 查到 / 查空)

原本 None 同时表示两件完全不同的事,于是"查空"也走了"什么都不写",
旧结论会一直留着:一台机器换了出口之后,面板上显示的是上一个地址的风险分。

现在:

情形 行为
没去查(开关关着 / 没配 key) 什么都不动 —— 不该把上次的结果抹掉
查到了 落库
查空(这家不认识这个 IP) 如实落库覆盖旧值
请求失败 走"没去查" —— 一次网络抖动不该丢数据

判断抽成纯函数 outcome,并补上它此前缺失的单测(六条断言,
其中最要紧的一条就是"失败 ≠ 查空")。

顺带修掉一处会误导人的显示

成功日志此前按标签取文件大小,路径不存在 ⇒ 打出
geo: 城市库 updated (0 bytes) —— 任何人看到都会以为下载到了空文件。
现在按真实落盘名取。

验证

本地清空数据库文件、让 hub 自己认格式跑了一遍:文件按内容落成
dbip-city-lite.mmdb / dbip-asn-lite.mmdb,两条 WARN 消失,临时文件没有残留。

只有 hub 与面板改动;agent 无需升级,也无需重新签名。