session-management について
複数のバックエンドフレームワークでセッション管理を実装するスキルです。安全なトークン処理、永続化、更新、ログアウト、CSRF 対策を扱い、JWT、Redis ストレージ、ミドルウェア、セッション保守のガイドを含みます。
主な機能
- 01安全なトークン処理
- 02セッションの永続化
- 03トークン更新の仕組み
- 04ログアウト手順
- 05CSRF 対策
- 06セッションクリーンアップのガイド
活用シーン
- 01ユーザー認証の実装
- 02セッション状態とユーザーコンテキストの管理
- 03JWT 更新サイクルへの対応
- 04状態変更リクエストの CSRF 対策
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill session-managementインストール後、Claude Code で/session-managementを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/csrf-protection.mdjwt-token-generation-and-validation.mdnodejsexpress-jwt-implementation.mdsession-cleanup-and-maintenance.mdsession-middleware-chain.mdsession-storage-with-redis.mdtoken-refresh-endpoint.mdscripts/security-checklist.sh詳細
セッション管理
目次
概要
セキュアなトークン処理、セッションの永続化、トークンのリフレッシュ機構、適切なログアウト手順、CSRF 保護を備えた包括的なセッション管理システムを、さまざまなバックエンドフレームワークで実装します。
使用する場面
- ユーザー認証システムを実装する場合
- セッション状態とユーザーコンテキストを管理する場合
- JWT トークンのリフレッシュサイクルを処理する場合
- ログアウト機能を実装する場合
- CSRF 攻撃から保護する場合
- セッションの有効期限切れとクリーンアップを管理する場合
クイックスタート
最小限の実行可能な例:
# Python/Flask Example
from flask import current_app
from datetime import datetime, timedelta
import jwt
import os
class TokenManager:
def __init__(self, secret_key=None):
self.secret_key = secret_key or os.getenv('JWT_SECRET')
self.algorithm = 'HS256'
self.access_token_expires_hours = 1
self.refresh_token_expires_days = 7
def generate_tokens(self, user_id, email, role='user'):
"""Generate both access and refresh tokens"""
now = datetime.utcnow()
# Access token
access_payload = {
'user_id': user_id,
'email': email,
'role': role,
'type': 'access',
'iat': now,
'exp': now + timedelta(hours=self.access_token_expires_hours)
// ... (see reference guides for full implementation)
リファレンスガイド
詳細な実装は references/ ディレクトリにあります:
| ガイド | 内容 |
|---|---|
| JWT トークンの生成と検証 | JWT トークンの生成と検証 |
| Node.js/Express の JWT 実装 | Node.js/Express の JWT 実装 |
| Redis によるセッションストレージ | Redis によるセッションストレージ |
| CSRF 保護 | CSRF 保護 |
| セッションミドルウェアチェーン | セッションミドルウェアチェーン |
| トークンリフレッシュエンドポイント | トークンリフレッシュエンドポイント |
| セッションのクリーンアップとメンテナンス | セッションのクリーンアップとメンテナンス |
ベストプラクティス
✅ 推奨事項
- すべてのセッション通信に HTTPS を使用する
- セキュアな Cookie(httpOnly、sameSite、secure フラグ)を実装する
- 適切な有効期限を設定した JWT を使用する
- トークンのリフレッシュ機構を実装する
- リフレッシュトークンを安全に保存する
- すべてのリクエストでトークンを検証する
- 強力なシークレットキーを使用する
- セッションタイムアウトを実装する
- 認証イベントをログに記録する
- ログアウト時にセッションデータを消去する
- 状態を変更するリクエストに CSRF トークンを使用する
❌ 禁止事項
- トークンに機密データを保存する
- 短いシークレットキーを使用する
- URL でトークンを送信する
- トークンの有効期限を無視する
- 環境間でトークンシークレットを再利用する
- localStorage にトークンを保存する(httpOnly Cookie を使用してください)
- HTTPS を使わずにセッションを実装する
- トークンの署名検証を忘れる
- ログにセッション ID を露出させる
- 推測可能なセッション ID を使用する
コメント
Markdown 対応