mcpField
1
124-java-secure-coding

124-java-secure-coding

github.com/jabrenaセキュリティ456467 回インストール1 日前に更新
リポジトリ

124-java-secure-coding について

Java プロジェクトの一般的な脆弱性をレビューし、対策するスキルです。安全・危険なコード例を分野別に示し、変更前のコンパイルと変更後の検証を求めます。

主な機能

  1. 01入力検証とインジェクション対策
  2. 02暗号化とシークレット管理
  3. 03安全な例外処理と出力エンコード
  4. 04デシリアライズ対策
  5. 05事前コンパイルと変更後の検証

活用シーン

  1. 01Java の入力検証とインジェクションリスクのレビュー
  2. 02サービスの例外処理の改善
  3. 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 コードの耐性を高める

ワークフロー

  1. セキュアコーディングの変更前にプロジェクトをコンパイルする

./mvnw compile または mvn compile を実行し、コンパイルに失敗した場合はただちに停止してください。

  1. セキュアコーディングのリファレンスを読み、リスクを評価する

references/124-java-secure-coding.md を読み、該当する脆弱性とセキュリティ強化の機会を特定してください。

  1. セキュアコーディングの改善を適用する

入力検証、暗号化、シークレット、デシリアライズ、出力エンコーディングに対する保護策を選択して実装してください。

  1. 完全なビルドで検証する

改善を適用した後に ./mvnw clean verify または mvn clean verify を実行してください。

リファレンス

詳しいガイダンス、例、制約事項については、references/124-java-secure-coding.md を参照してください。

コメント