他のプロジェクトに簡単に適用できる、再利用可能なセキュリティルールセット
- ✅ セキュリティルール文書(SECURITY_RULES.md)
- ✅ Git pre-commitフック(自動チェック)
- ✅ インストールスクリプト(Windows/Unix)
- ✅ 環境変数テンプレート(.env.example)
- ✅ .gitignore設定
- ✅ CLAUDE.mdセクション(AI開発支援)
# プロジェクトのルートディレクトリに移動
cd /path/to/your-project
# このテンプレートをコピー
cp -r /path/to/security-rules-template/* .# Windows
install-security-hooks.bat
# macOS/Linux
chmod +x install-security-hooks.sh
./install-security-hooks.shconfig/security-patterns.json を編集して、プロジェクト固有のパターンを追加
security-rules-template/
├── README.md # このファイル
├── SECURITY_RULES.md # セキュリティルール文書
├── .git-hooks/
│ └── pre-commit # 自動チェックスクリプト
├── install-security-hooks.bat # Windowsインストーラー
├── install-security-hooks.sh # Unix系インストーラー
├── .env.example # 環境変数テンプレート
├── .gitignore.template # .gitignore追加内容
├── CLAUDE.md.template # CLAUDE.md追加セクション
└── config/
└── security-patterns.json # 検出パターン設定
# セキュリティルール文書
cp SECURITY_RULES.md /path/to/your-project/
# Git Hooks
cp -r .git-hooks /path/to/your-project/
# インストーラー
cp install-security-hooks.* /path/to/your-project/
# 設定ファイル
cp config/security-patterns.json /path/to/your-project/.security/cat .gitignore.template >> /path/to/your-project/.gitignorecat CLAUDE.md.template >> /path/to/your-project/CLAUDE.mdcd /path/to/your-project
./install-security-hooks.sh # または .bat#!/bin/bash
# 使い方: ./apply-to-project.sh /path/to/target-project
TARGET_PROJECT=$1
if [ -z "$TARGET_PROJECT" ]; then
echo "使い方: $0 <プロジェクトパス>"
exit 1
fi
if [ ! -d "$TARGET_PROJECT" ]; then
echo "エラー: プロジェクトが見つかりません: $TARGET_PROJECT"
exit 1
fi
echo "セキュリティルールを適用中: $TARGET_PROJECT"
# ファイルをコピー
cp SECURITY_RULES.md "$TARGET_PROJECT/"
cp -r .git-hooks "$TARGET_PROJECT/"
cp install-security-hooks.* "$TARGET_PROJECT/"
mkdir -p "$TARGET_PROJECT/.security"
cp config/security-patterns.json "$TARGET_PROJECT/.security/"
# .gitignoreに追加
if [ -f "$TARGET_PROJECT/.gitignore" ]; then
cat .gitignore.template >> "$TARGET_PROJECT/.gitignore"
echo "✓ .gitignoreに追加しました"
else
cp .gitignore.template "$TARGET_PROJECT/.gitignore"
echo "✓ .gitignoreを作成しました"
fi
# CLAUDE.mdに追加
if [ -f "$TARGET_PROJECT/CLAUDE.md" ]; then
cat CLAUDE.md.template >> "$TARGET_PROJECT/CLAUDE.md"
echo "✓ CLAUDE.mdに追加しました"
fi
# Hooksをインストール
cd "$TARGET_PROJECT"
if [ -f "install-security-hooks.sh" ]; then
chmod +x install-security-hooks.sh
./install-security-hooks.sh
fi
echo "✅ セキュリティルールの適用が完了しました"chmod +x apply-to-project.sh
./apply-to-project.sh /path/to/my-new-projectconfig/security-patterns.json を編集:
{
"patterns": {
"Stripeシークレットキー": "sk_(live|test)_[A-Za-z0-9]{24,}",
"Webhook署名": "whsec_[A-Za-z0-9]{32,}",
"カスタムパターン": "your_custom_pattern_here"
},
"excludeFiles": [
"api/*",
"server/*",
"backend/*"
],
"includeFiles": [
"*.html",
"*.js",
"*.jsx",
"*.ts",
"*.tsx",
"*.css"
]
}SECURITY_RULES.md の最後に追加:
## プロジェクト固有のルール
### ルール7: [あなたのルール]
説明....git-hooks/pre-commit を編集:
# api/ ディレクトリは除外(サーバーサイド)
if [[ $file == api/* ]]; then
is_client_side=false
fi
# 追加の除外ディレクトリ
if [[ $file == backend/* ]] || [[ $file == server/* ]]; then
is_client_side=false
fi# テストファイルを作成
echo "const SECRET = 'sk_live_test123'" > test.js
git add test.js
git commit -m "test"
# 期待される結果:
# ❌ エラー: シークレットキーが検出されました
# コミットを中止します# 環境変数を使用
echo "const SECRET = process.env.SECRET_KEY" > test.js
git add test.js
git commit -m "Use environment variable"
# 期待される結果:
# ✅ セキュリティチェック完了 - 問題なし- プロジェクトのルートディレクトリに移動
- Gitリポジトリが初期化されている(
.gitディレクトリが存在) - バックアップを作成(念のため)
- ファイルをコピー
-
.gitignoreに追加 -
CLAUDE.mdに追加(存在する場合) - Hooksをインストール
- 動作確認テストを実行
- チームメンバーに周知
-
SECURITY_RULES.mdを共有 - 定期的にパターンを見直し
- Webアプリケーション (React, Vue, Angular)
- Node.js プロジェクト
- Electron アプリ
- 静的サイト (HTML/CSS/JS)
- API プロジェクト(サーバーサイド除外設定あり)
- Python プロジェクト(パターン追加が必要)
- Go プロジェクト(パターン追加が必要)
- モノレポ(除外パス設定が必要)
A: 実行権限を確認
chmod +x .git/hooks/pre-commitA: config/security-patterns.jsonでパターンを調整
A: .git-hooks/pre-commitのexcludeFiles配列に追加
# npxで即座に適用(予定)
npx @your-org/security-rules init- SECURITY_RULES.md - 完全なセキュリティルール
- Git Hooks Documentation
- OWASP Top 10
このテンプレートは自由に使用・カスタマイズできます。
問題が発生した場合は、プロジェクトのIssueを作成してください。
作成日: 2025年1月 バージョン: 1.0 対象: すべてのWebプロジェクト