mcpField
C
csrf-protection

csrf-protection

github.com/aj-geddesセキュリティ373474 回インストール34 週間前に更新
リポジトリ

csrf-protection について

トークン方式、Cookie属性、リクエストヘッダー検証によるクロスサイトリクエストフォージェリ対策を扱うスキルです。Node.js/Express、Flask、フロントエンド向けのガイドがあります。

主な機能

  1. 01同期トークン方式
  2. 02二重送信Cookie方式
  3. 03SameSite Cookie属性
  4. 04OriginとRefererの検証
  5. 05Node.js、Flask、フロントエンドのガイド

活用シーン

  1. 01フォーム送信の保護
  2. 02状態変更リクエストの防御
  3. 03認証フローの強化
  4. 04決済やアカウント操作の保護

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill csrf-protection

インストール後、Claude Code で/csrf-protectionを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
double-submit-cookie-pattern.md
frontend-csrf-implementation.md
nodejsexpress-csrf-protection.md
origin-and-referer-validation.md
python-flask-csrf-protection.md
scripts/
security-checklist.sh

詳細

CSRF 保護

目次

概要

同期トークン、二重送信 Cookie、SameSite Cookie 属性、カスタムヘッダーを使用して、包括的なクロスサイトリクエストフォージェリ(CSRF)対策を実装します。

使用する場面

  • フォーム送信
  • 状態を変更する操作
  • 認証システム
  • 決済処理
  • アカウント管理
  • あらゆる POST/PUT/DELETE リクエスト

クイックスタート

最小限の実行例:

// csrf-protection.js
const crypto = require("crypto");
const csrf = require("csurf");

class CSRFProtection {
  constructor() {
    this.tokens = new Map();
    this.tokenExpiry = 3600000; // 1 hour
  }

  /**
   * Generate CSRF token
   */
  generateToken() {
    return crypto.randomBytes(32).toString("hex");
  }

  /**
   * Create token for session
   */
  createToken(sessionId) {
    const token = this.generateToken();
    const expiry = Date.now() + this.tokenExpiry;

    this.tokens.set(sessionId, {
// ... (see reference guides for full implementation)

リファレンスガイド

詳細な実装については、references/ ディレクトリを参照してください。

ガイド内容
Node.js/Express CSRF 保護Node.js/Express CSRF 保護
二重送信 Cookie パターン二重送信 Cookie パターン
Python Flask CSRF 保護Python Flask CSRF 保護
フロントエンド CSRF 実装フロントエンド CSRF 実装
Origin と Referer の検証Origin と Referer の検証

ベストプラクティス

✅ 推奨事項
  • 状態を変更するすべての操作で CSRF トークンを使用する
  • Cookie に SameSite=Strict を設定する
  • Origin/Referer ヘッダーを検証する
  • 安全でランダムなトークンを使用する
  • トークンの有効期限を設定する
  • HTTPS のみを使用する
  • AJAX リクエストにトークンを含める
  • CSRF 対策をテストする
❌ 避けるべきこと
  • 認証済みリクエストで CSRF 対策を省略する
  • 状態の変更に GET を使用する
  • Origin ヘッダーだけを信頼する
  • トークンを再利用する
  • トークンを localStorage に保存する
  • 検証せずに CORS で資格情報を許可する

コメント