Skip to content

ai00000000/security-rules-template

Repository files navigation

セキュリティルール テンプレート

他のプロジェクトに簡単に適用できる、再利用可能なセキュリティルールセット


📦 このテンプレートに含まれるもの

  • ✅ セキュリティルール文書(SECURITY_RULES.md)
  • ✅ Git pre-commitフック(自動チェック)
  • ✅ インストールスクリプト(Windows/Unix)
  • ✅ 環境変数テンプレート(.env.example)
  • ✅ .gitignore設定
  • ✅ CLAUDE.mdセクション(AI開発支援)

🚀 クイックスタート(3ステップ)

ステップ1: ファイルをコピー

# プロジェクトのルートディレクトリに移動
cd /path/to/your-project

# このテンプレートをコピー
cp -r /path/to/security-rules-template/* .

ステップ2: Git Hooksをインストール

# Windows
install-security-hooks.bat

# macOS/Linux
chmod +x install-security-hooks.sh
./install-security-hooks.sh

ステップ3: カスタマイズ(必要に応じて)

config/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          # 検出パターン設定

🔧 詳細インストール手順

方法1: 手動コピー(推奨)

1. 必須ファイルをコピー

# セキュリティルール文書
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/

2. .gitignoreに追加

cat .gitignore.template >> /path/to/your-project/.gitignore

3. CLAUDE.mdに追加(存在する場合)

cat CLAUDE.md.template >> /path/to/your-project/CLAUDE.md

4. Hooksをインストール

cd /path/to/your-project
./install-security-hooks.sh  # または .bat

方法2: スクリプトで一括適用

apply-to-project.sh を作成:

#!/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-project

⚙️ カスタマイズ方法

1. 検出パターンの追加

config/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"
  ]
}

2. プロジェクト固有のルールを追加

SECURITY_RULES.md の最後に追加:

## プロジェクト固有のルール

### ルール7: [あなたのルール]

説明...

3. 除外ディレクトリの設定

.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

🔍 動作確認

テスト1: 機密情報の検出

# テストファイルを作成
echo "const SECRET = 'sk_live_test123'" > test.js
git add test.js
git commit -m "test"

# 期待される結果:
# ❌ エラー: シークレットキーが検出されました
# コミットを中止します

テスト2: 正常なコミット

# 環境変数を使用
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 プロジェクト(パターン追加が必要)
  • モノレポ(除外パス設定が必要)

🛠️ トラブルシューティング

Q: Hooksが動作しない

A: 実行権限を確認

chmod +x .git/hooks/pre-commit

Q: 誤検知が多い

A: config/security-patterns.jsonでパターンを調整

Q: 特定のファイルを除外したい

A: .git-hooks/pre-commitexcludeFiles配列に追加


📦 npm/npxパッケージ化(将来的に)

# npxで即座に適用(予定)
npx @your-org/security-rules init

🔗 関連リンク


📝 ライセンス

このテンプレートは自由に使用・カスタマイズできます。


🆘 サポート

問題が発生した場合は、プロジェクトのIssueを作成してください。


作成日: 2025年1月 バージョン: 1.0 対象: すべてのWebプロジェクト

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors