布審計(jì)機(jī)制完整指南:不解壓、不發(fā)布也能審計(jì) ZIP 工件)
claude-obsidian 發(fā)布審計(jì)機(jī)制完整指南不解壓、不發(fā)布也能審計(jì) ZIP 工件【免費(fèi)下載鏈接】claude-obsidianSelf-organizing AI second brain for Obsidian Claude Code. Drop any source and Claude reads, links, and files it into one connected knowledge graph of plain Markdown you own. AI note-taking, personal knowledge management (PKM), and an open-source Notion alternative. Based on Karpathys LLM Wiki pattern.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/cl/claude-obsidianclaude-obsidian是一個(gè)基于 Obsidian Claude Code 的自組織 AI 第二大腦丟入任意資料Claude 會(huì)自動(dòng)閱讀、建立鏈接、歸檔成一張由純 Markdown 構(gòu)成的互聯(lián)知識(shí)圖譜完全歸你所有。而它同樣內(nèi)置了一套發(fā)布審計(jì)機(jī)制——不用解壓、不執(zhí)行任何發(fā)布動(dòng)作一條命令就能在內(nèi)存中完成 ZIP 工件的安全審計(jì)并輸出結(jié)構(gòu)化的通過/失敗報(bào)告。本文帶你弄懂這套零解壓審計(jì)如何工作、又該怎么上手。什么是 claude-obsidianAI 第二大腦 知識(shí)圖譜claude-obsidian 把散落的筆記、文章、資料自動(dòng)整理進(jìn)一個(gè) Obsidian 倉庫并生成可視化圖譜。所有知識(shí)以純 Markdown 存儲(chǔ)你隨時(shí)可以打開、修改、帶走不依賴任何閉源服務(wù)。對(duì)個(gè)人用戶來說數(shù)據(jù)私有是剛需對(duì)維護(hù)者來說把什么交給用戶同樣關(guān)鍵——這正是發(fā)布審計(jì)機(jī)制登場的地方。為什么要先審計(jì)后發(fā)布把一份 ZIP 發(fā)布出去不等于解壓出來翻一遍文件就算安全。錯(cuò)誤文件、密鑰殘留、個(gè)人郵箱、私有倉庫路徑都可能藏在幾百個(gè)文件之中。claude-obsidian 的發(fā)布模塊 claude_obsidian/release.py 在設(shè)計(jì)上就刻意不具備任何發(fā)布和 Git 變更能力構(gòu)建流程只負(fù)責(zé)讀取干凈的工作樹、按白名單選取文件、掃描內(nèi)容、寫出確定性 ZIP然后審計(jì)這份 ZIP全部通過才讓它出現(xiàn)在輸出路徑上。核心入口是 audit_artifact() 函數(shù)它的文檔注釋寫得非常直白Audit an artifact without extracting it or trusting archive paths——不解壓、不信任歸檔路徑。任何無效或危險(xiǎn)的工件都會(huì)返回ok: false加穩(wěn)定的錯(cuò)誤碼調(diào)用方無需處理異常。內(nèi)存中的四步審計(jì)流程整個(gè)過程只把 ZIP 讀入內(nèi)存且全程限制大小絕不落盤解壓。第 1 步結(jié)構(gòu)預(yù)檢拒絕非標(biāo)準(zhǔn)壓縮包在解析歸檔之前_preflight_zip_structure() 先檢查 ZIP 結(jié)構(gòu)本身拒絕自解壓、多卷、ZIP64 等非標(biāo)準(zhǔn)格式校驗(yàn)中央目錄邊界是否一致、有無隱藏間隙只接受 stored不壓縮條目逐條計(jì)算壓縮比識(shí)別壓縮炸彈條目數(shù)、單文件大小、總大小都有硬性上限默認(rèn) 100MB 歸檔 / 50MB 總載荷 / 5000 個(gè)文件見 DEFAULT_LIMITS第 2 步路徑與文件安全擋住越權(quán)內(nèi)容拒絕絕對(duì)路徑、..逃逸、大小寫碰撞的路徑拒絕目錄項(xiàng)、符號(hào)鏈接、設(shè)備文件、加密條目硬排除規(guī)則任何配置都無法放寬見 _hard_path_errors().git內(nèi)部數(shù)據(jù)、.raw原始來源、.vault-meta運(yùn)行時(shí)狀態(tài)、wiki/hot.md與wiki/log.md等用戶實(shí)時(shí)筆記狀態(tài)、.env及憑據(jù)類文件一律不得進(jìn)入發(fā)布包第 3 步內(nèi)容掃描自動(dòng)攔截秘密與隱私_scan_content() 會(huì)對(duì)每個(gè)文本文件做保守的隱私檢測常見密鑰格式GitHub Token、OpenAI/Anthropic Key、AWS Key、JWT、私鑰塊等允許名單之外的個(gè)人郵箱地址連#64;這類 HTML 編碼變體都會(huì)先解碼再檢測絕對(duì)用戶主目錄路徑如/Users/xxx、C:\Users\xxx未登記的二進(jìn)制文件必須提供審查過的 SHA-256 指紋才放行第 4 步字節(jié)級(jí)復(fù)現(xiàn)證明壓縮包一絲不差這是最妙的一步包內(nèi)自帶的 RELEASE_MANIFEST.json 與 SHA256SUMS 兩個(gè)控制文件會(huì)被逐項(xiàng)核對(duì)——每個(gè)文件的大小、SHA-256、權(quán)限位、時(shí)間戳都必須與清單一致。最后審計(jì)器還會(huì)按清單在內(nèi)存中重新構(gòu)建一份 ZIP用常量時(shí)間比較hmac.compare_digest逐字節(jié)對(duì)比。任何 1 字節(jié)的差異都會(huì)觸發(fā)noncanonical_archive錯(cuò)誤。這意味著工件是真正確定性的同樣的輸入必然產(chǎn)生同樣的字節(jié)。構(gòu)建流程同樣防篡改build_public_artifact() 的構(gòu)建流程也有多重保險(xiǎn)要求 Git 工作樹完全干凈git status零改動(dòng)構(gòu)建前后各做一次Git 快照比對(duì)過程中倉庫變化立即失敗先寫入臨時(shí)文件并完成自審計(jì)再原子替換到輸出路徑——失敗時(shí)輸出路徑保持原樣全程不 push、不 tag、不發(fā)布、不開 issue發(fā)布范圍則由白名單 config/release-allowlist.json 顯式聲明公共市場目錄 config/public-marketplace.json 只會(huì)被注入到發(fā)布產(chǎn)物中開發(fā)倉庫本身不含它。相關(guān)行為還有 tests/test_release.py 的完整測試覆蓋以及 claude_obsidian/gates.py 提供的發(fā)布門禁檢查。快速上手兩條命令完成構(gòu)建與審計(jì)git clone https://gitcode.com/GitHub_Trending/cl/claude-obsidian cd claude-obsidian python3 scripts/claude-obsidian.py release build --output dist/claude-obsidian.zip python3 scripts/claude-obsidian.py release audit dist/claude-obsidian.ziprelease audit的參數(shù)就是一個(gè) ZIP 路徑定義見 claude_obsidian/cli.py審計(jì)完成會(huì)打印包含ok、錯(cuò)誤碼列表、工件 SHA-256 和來源 commit 的結(jié)構(gòu)化報(bào)告。你甚至可以拿它審計(jì)任何符合該格式的第三方工件。這套機(jī)制保護(hù)了誰最終用戶下載到的每個(gè)字節(jié)都可驗(yàn)證、可追溯包內(nèi)絕不會(huì)混入他人倉庫的實(shí)時(shí)筆記與隱私狀態(tài)貢獻(xiàn)者本地開發(fā)目錄里的密鑰、環(huán)境文件即使忘了刪也會(huì)被審計(jì)硬性攔下維護(hù)者ok: true之前工件連輸出路徑都到不了——失敗即安全fail-closed小結(jié)claude-obsidian 的發(fā)布審計(jì)把安全變成了流水線上的默認(rèn)動(dòng)作不解壓、不發(fā)布、不信任只憑內(nèi)存中的四步檢查結(jié)構(gòu)預(yù)檢、路徑安全、內(nèi)容掃描、字節(jié)級(jí)復(fù)現(xiàn)為 ZIP 工件簽發(fā)可信證明。對(duì)任何需要分發(fā)制品的開源項(xiàng)目來說這套先審計(jì)、后放行的思路都值得參考。更多細(xì)節(jié)可閱讀 docs/install-guide.md 與 SECURITY.md。【免費(fèi)下載鏈接】claude-obsidianSelf-organizing AI second brain for Obsidian Claude Code. Drop any source and Claude reads, links, and files it into one connected knowledge graph of plain Markdown you own. AI note-taking, personal knowledge management (PKM), and an open-source Notion alternative. Based on Karpathys LLM Wiki pattern.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/cl/claude-obsidian創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考