Security Standards
適用範圍:所有 DungeonDelvers 相關專案 更新日期:2025-09-06 狀態:強制執行
📋 專案清單與安全狀態
✅ 已檢查的專案
白皮書
/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分鐘內):
停止推送:立即停止任何正在進行的
git push
撤銷金鑰:如果是私鑰或 API 金鑰,立即撤銷/輪替
通知團隊:立即通知所有團隊成員
修復行動(30分鐘內):
移除敏感資料:從代碼中完全移除
更新 .gitignore:確保未來不會再次洩漏
Git 歷史清理:使用
git filter-branch
或BFG Repo-Cleaner
驗證行動(1小時內):
重新掃描:執行完整安全掃描
測試部署:確認修復不影響功能
記錄事件:建立事故報告和改進措施
📊 安全評分標準
🟢 高安全等級 (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 都是一次安全檢查的機會。
最后更新于