124-java-secure-coding について
Java プロジェクトの一般的な脆弱性をレビューし、対策するスキルです。安全・危険なコード例を分野別に示し、変更前のコンパイルと変更後の検証を求めます。
主な機能
- 01入力検証とインジェクション対策
- 02暗号化とシークレット管理
- 03安全な例外処理と出力エンコード
- 04デシリアライズ対策
- 05事前コンパイルと変更後の検証
活用シーン
- 01Java の入力検証とインジェクションリスクのレビュー
- 02サービスの例外処理の改善
- 03パスワード、シークレット、デシリアライズ処理の強化
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jabrena/ plinth --skill 124-java-secure-codingインストール後、Claude Code で/124-java-secure-codingを入力して読み込まれたか確認します。
同梱ファイルreferences/124-java-secure-coding.md
詳細
Java のセキュアコーディングガイドライン
Java のセキュアコーディングの実践方法を特定して適用し、脆弱性を減らし、機密データを保護し、一般的な攻撃ベクトルに対するアプリケーションの耐性を高めます。
このスキルで扱う内容
- 入力検証:型、長さ、形式、範囲のチェック
PreparedStatementとパラメーター化 API による SQL/OS/LDAP インジェクション対策- 攻撃対象領域の最小化:最小権限の原則に基づくアクセス許可、未使用機能の削除
- 強力な暗号化:パスワードには BCrypt/Argon2、暗号化には AES-GCM、デジタル署名を使用し、非推奨の暗号方式(MD5、SHA-1、DES)は避ける
- 安全な例外処理:診断情報は内部で記録し、クライアントには汎用的なメッセージのみを表示する
- シークレット管理:認証情報は環境変数またはシークレットマネージャーから読み込み、ハードコードは絶対にしない
- 安全なデシリアライズ:厳格な許可リストを使用し、ネイティブ Java シリアライズより明示的な DTO を優先する
- レンダリングされるコンテンツでの XSS を防ぐ出力エンコーディング
対象範囲: このリファレンスは、各主要分野について、例(適切/不適切なコードパターン)をまとめています。該当する例に基づいて推奨事項を適用してください。
制約事項
セキュアコーディングの変更を適用する前に、プロジェクトがコンパイルできることを確認してください。コンパイルに失敗した場合は、ただちに停止し、解決するまで先に進まないでください。改善を適用した後は、完全な検証を実行してください。
- 必須: 変更を適用する前に
./mvnw compileまたはmvn compileを実行する - 安全性: コンパイルに失敗した場合は、ただちに停止する。プロジェクトが有効な状態になるまで先に進まない
- 検証: 改善を適用した後に
./mvnw clean verifyまたはmvn clean verifyを実行する - 適用前: 各セキュアコーディングパターンの適切/不適切な例、制約事項、安全策の詳細についてリファレンスを読む
このスキルを使用する場面
- Java コードのセキュアコーディングをレビューする
- Java コードの入力検証リスクを見つける
- Java コードのインジェクション脆弱性をレビューする
- Java サービスの安全なエラー処理を改善する
- 一般的なセキュリティ上の欠陥に対する Java コードの耐性を高める
ワークフロー
- セキュアコーディングの変更前にプロジェクトをコンパイルする
./mvnw compile または mvn compile を実行し、コンパイルに失敗した場合はただちに停止してください。
- セキュアコーディングのリファレンスを読み、リスクを評価する
references/124-java-secure-coding.md を読み、該当する脆弱性とセキュリティ強化の機会を特定してください。
- セキュアコーディングの改善を適用する
入力検証、暗号化、シークレット、デシリアライズ、出力エンコーディングに対する保護策を選択して実装してください。
- 完全なビルドで検証する
改善を適用した後に ./mvnw clean verify または mvn clean verify を実行してください。
リファレンス
詳しいガイダンス、例、制約事項については、references/124-java-secure-coding.md を参照してください。