Security Standards

適用範圍:所有 DungeonDelvers 相關專案 更新日期:2025-09-06 狀態:強制執行

📋 專案清單與安全狀態

✅ 已檢查的專案

專案
路徑
.gitignore 狀態
安全等級

白皮書

/dungeon-delvers-whitepaper/

已增強

🟢 高

前端

/SoulboundSaga/

完整

🟢 高

合約

/DungeonDelversContracts/

企業級

🟢 高

子圖

/dungeon-delvers-subgraph/

良好

🟢 高

後端

/metadata-server/

完整

🟢 高

🛡️ 統一安全規範

1. 敏感資料保護 (必須包含)

所有專案的 .gitignore 都必須包含:

# === 核心安全保護 ===
# Environment variables
.env*
!.env.example

# Cryptographic keys
*.key
*.pem
*.p12
*.pfx

# Private directories
secrets/
private/
config/secrets/

# Backup files (may contain sensitive data)
*.backup
*.bak
*.orig
*~

# Log files (may contain sensitive information)
*.log
logs/

2. 專案特定保護規則

合約專案 (最高安全等級)

# 🚨 CRITICAL SECURITY - Never commit private keys
*private*
*secret*
scripts/*rescue*.js
scripts/*bundle*.js
scripts/private/
private-keys.txt

前端專案

# Web3 specific
.env.local
.env.development
.env.production

後端 API 專案

# Server secrets
config/production.json
uploads/
temp/

子圖專案

# Graph Protocol
.graph/
generated/
build/

🔍 安全掃描檢查清單

執行頻率:每次代碼修改後

1. 私鑰掃描

# 檢查 64 字符私鑰模式
grep -r "0x[0-9a-fA-F]\{64\}" . --exclude-dir=node_modules --exclude-dir=.git

# 檢查環境變數私鑰
grep -r "PRIVATE_KEY.*=" . --exclude-dir=node_modules

# 檢查硬編碼敏感資料
grep -r -i "private.*key\|secret.*key\|mnemonic" . --exclude-dir=node_modules

2. API 金鑰檢查

grep -r -E "sk_[a-zA-Z0-9]{32,}|pk_[a-zA-Z0-9]{32,}" . --exclude-dir=node_modules

3. Git 歷史安全檢查 (開源前必執行)

# 掃描 Git 歷史中的私鑰
git log -p --all | grep -E "0x[0-9a-fA-F]{64}|PRIVATE_KEY.*0x"

# 檢查 .env 文件歷史
git log --all --full-history -- .env*

🚨 緊急響應程序

發現敏感資料洩漏時:

立即行動(5分鐘內):

  1. 停止推送:立即停止任何正在進行的 git push

  2. 撤銷金鑰:如果是私鑰或 API 金鑰,立即撤銷/輪替

  3. 通知團隊:立即通知所有團隊成員

修復行動(30分鐘內):

  1. 移除敏感資料:從代碼中完全移除

  2. 更新 .gitignore:確保未來不會再次洩漏

  3. Git 歷史清理:使用 git filter-branchBFG Repo-Cleaner

驗證行動(1小時內):

  1. 重新掃描:執行完整安全掃描

  2. 測試部署:確認修復不影響功能

  3. 記錄事件:建立事故報告和改進措施

📊 安全評分標準

🟢 高安全等級 (95-100%)

  • ✅ .gitignore 包含所有必需規則

  • ✅ 無私鑰洩漏

  • ✅ 無 API 金鑰洩漏

  • ✅ Git 歷史乾淨

  • ✅ 定期安全掃描

🟡 中等安全等級 (80-94%)

  • ⚠️ .gitignore 部分遺漏

  • ⚠️ 存在低風險敏感資料

  • ✅ 無高風險洩漏

🔴 低安全等級 (<80%)

  • ❌ .gitignore 嚴重不足

  • ❌ 存在敏感資料洩漏

  • ❌ 需要立即修復

🎯 各專案當前狀態

DungeonDelversContracts 🟢

  • 安全等級:99% (企業級)

  • 特色:最嚴格的私鑰保護

  • 優勢:詳細的敏感腳本保護

SoulboundSaga (前端) 🟢

  • 安全等級:95%

  • 特色:完整的環境變數保護

  • 優勢:詳細的中文註解說明

dungeon-delvers-subgraph 🟢

  • 安全等級:92%

  • 特色:Graph Protocol 特定保護

  • 優勢:簡潔但完整的規則

metadata-server 🟢

  • 安全等級:90%

  • 特色:服務器特定保護

  • 優勢:完整的中文註解

dungeon-delvers-whitepaper 🟢

  • 安全等級:95% (剛增強)

  • 改進:新增完整的敏感資料保護

  • 狀態:已達到企業級標準

🔄 持續改進計劃

短期目標 (本週)

  • ✅ 完成所有專案安全掃描

  • ✅ 統一 .gitignore 標準

  • ✅ 建立安全檢查自動化

中期目標 (本月)

  • 🔄 實施 pre-commit hooks

  • 🔄 建立 CI/CD 安全掃描

  • 🔄 定期安全審計流程

長期目標 (季度)

  • 📋 安全培訓計劃

  • 📋 漏洞懸賞計劃

  • 📋 第三方安全審計


⚡ 快速執行指令

一鍵安全掃描 (所有專案)

# 在每個專案根目錄執行
for project in "dungeon-delvers-whitepaper" "SoulboundSaga" "DungeonDelversContracts" "dungeon-delvers-subgraph" "dungeon-delvers-metadata-server"; do
    echo "=== 掃描 $project ==="
    cd "/Users/sotadic/Documents/GitHub/$project" 2>/dev/null || cd "/Users/sotadic/Documents/$project" 2>/dev/null
    if [ $? -eq 0 ]; then
        echo "✅ 進入 $project 成功"
        grep -r "0x[0-9a-fA-F]\{64\}" . --exclude-dir=node_modules --exclude-dir=.git | head -5
    else
        echo "❌ 找不到專案: $project"
    fi
    echo ""
done

驗證 .gitignore 完整性

# 檢查關鍵保護規則
grep -q "\.env" .gitignore && echo "✅ 環境變數保護" || echo "❌ 缺少環境變數保護"
grep -q "\*\.key" .gitignore && echo "✅ 金鑰保護" || echo "❌ 缺少金鑰保護"  
grep -q "secrets/" .gitignore && echo "✅ 機密目錄保護" || echo "❌ 缺少機密目錄保護"

🔒 記住:安全不是一次性任務,而是持續的過程。每一次 commit 都是一次安全檢查的機會。

最后更新于