Skip to content

fix(app): redact bilibili device ids and merge matching cdn rules - #186

Merged
1morr merged 3 commits into
mainfrom
fix/redaction-cdn-rules
Sep 30, 2026
Merged

1morr merged 3 commits into
mainfrom
fix/redaction-cdn-rules

Conversation

@1morr

@1morr 1morr commented Sep 30, 2026

Copy link
Copy Markdown
Owner

9c 錄製時發現的兩個遮蔽缺口(ADR 0011)。

問題

  1. 內建的 B 站 CDN 規則沒有 buvid(匿名裝置 id)與 hdnts(Akamai 鏡像的 token)。9c 第一次錄製的串流網址帶著這兩個值。官方插件靠 manifest 補上了,其他插件會漏。
  2. Redactor 只套用第一個符合 host 的 MediaCdn。內建規則排在前面,所以插件替同一個 host 追加的參數不會生效。

修正

  • _bilibiliSigned 加上 buvid、hdnts。
  • 符合的規則全部合併:參數取聯集;任一條規則有 signedPath 就套用。只符合一條規則的網址,輸出和以前相同。
  • 新增 3 個測試,修正前都會紅。
  • 說明文件同步更新:MediaCdn 的說明、logging spec 與 plugins spec。

連帶

  • fmp-plugins 的 B 站 fixture 同步重新遮蔽,另開 PR:只拿掉 24 個 CDN 網址裡的 hdnts=***/buvid=***,結果由掃描驗證。
  • 「值換成 *** 而不是整個拿掉」的建議記在 M1 implement.md 的後續,M3 前處理。

驗證

  • format、dart analyze --fatal-infos、flutter analyze 都零問題;flutter test 519 個通過;哨兵通過。
  • B 站插件用新規則重播,4 個測試全綠。
  • opus 審查沒有找到程式缺陷,並確認只符合單一規則的網址沒有退化,也確認正式程式碼只有 log 門面用到遮蔽過的網址。

@1morr
1morr merged commit aca2462 into main Sep 30, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant