ブログ
セキュリティ2026年5月27日

JWT セキュリティのベストプラクティス

JSON Web Token (JWT) は API 認証で広く使われます。Header、Payload、Signature の 3 部分で構成され、ドットで連結されます。セキュリティモデルを理解することが重要です。

未検証の Payload を信頼しない

Payload は Base64 符号化のみで暗号化されていません。誰でもデコードでき、改ざんして再符号化も可能(有効な署名は作れません)。サーバーは必ず署名を検証し、強力な秘密鍵(HS256)または鍵ペア(RS256)を使います。

WaiHub の JWT デコーダーは開発デバッグ用です。本番ではサーバー側で署名検証が必須です。

適切な有効期限

アクセストークンは短寿命(15 分〜1 時間)にし、リフレッシュトークンで更新。無期限トークンは避け、exp をサーバーで厳密に検証してください。

Payload に機密情報を入れない

JWT Payload は誰でも読めます。パスワードやカード番号は入れず、ユーザー ID やロールなど認証に必要な情報のみに留めてください。

HTTPS を使用

トークンは Authorization: Bearer ヘッダーや Cookie で送信されます。HTTPS で傍受を防ぎ、Cookie には HttpOnly と Secure を設定してください。