Java・Spring Bootコード
Javaコードマスキングツールは、パッケージ、クラス、メソッド、フィールド、変数、文字列、コメントなどを区別して置換します。Javaソース内に含まれるSQL断片も確認できます。
SQL
SQLマスキングツールは、Oracle、PostgreSQL、MySQL、SQL Server、SQLiteの方言を選び、テーブル名、カラム名、文字列、数値、コメントを置換します。Java文字列として埋め込まれたSQLではなく、SQL単体を共有するときに適しています。
JSON
JSONマスキングツールは、オブジェクトと配列の階層を維持しながらキー、文字列、数値を置換します。APIリクエスト・レスポンスや設定ファイルの確認に向いています。
ログ
Logマスキングツールは、Log4j、Syslog、JSON Lines、アクセスログなどから、IPアドレス、URL、メールアドレス、パス、識別子を検出します。自由記述やスタックトレースは結果を必ず目視確認してください。
Vue・React・jQuery
フロントエンドコードでは、利用している構文に合わせてVue、React、jQueryの専用ツールを選びます。コンポーネント、JSX・TSX、テンプレート、セレクターの違いを考慮して置換します。
C・C++・Python・C#・PHP・VB.NET・VBA・Rust
バックエンド、デスクトップ、マクロ、組み込み、システム開発のコードには、C、C++、Python、C#、PHP、VB.NET、VBA、Rustの専用ツールを選びます。各言語の予約語、コメント、文字列、型・関数宣言を考慮して置換します。
TypeScript
型情報を含むWeb・Node.jsコードにはTypeScriptコードマスキングツールを使用します。interface、type、enum、ジェネリクス、デコレーターを考慮しながら、型、関数、変数、値を置換します。
COBOL・Bash
基幹系のCOBOLコードにはCOBOLコードマスキングツール、運用・自動化スクリプトにはBashスクリプトマスキングツールを使用します。COBOLの固定形式・PIC句と、BashのShebang・変数展開・ヒアドキュメントを考慮して置換します。
Ruby・Swift・Objective-C
Web・業務アプリのRubyコードにはRuby、Appleプラットフォーム向けコードにはSwiftまたはObjective-Cの専用ツールを使用します。各言語の文字列、コメント、型・メソッド宣言を考慮して置換します。
迷ったときの判断
- ファイル全体を扱う場合は、その拡張子や主要構文に合うツールを選ぶ
- ログ内のJSONなど複数形式が混在する場合は、外側の形式でマスキング後に内側も確認する
- 認証情報はどのツールでも入力前に削除し、置換だけへ依存しない
- 処理後はマスキングチェックリストで共有前確認を行う
具体例:複数形式が混在する障害資料の選び方
Spring BootのJavaコード、SQL、APIレスポンスJSON、アクセスログをまとめて共有する場合は、資料全体を1つのツールへ貼り付けず、形式ごとに分割します。JavaはJava、SQLは選択したDB方言、JSONは階層構造、ログは時系列を保ってマスキングします。
- ファイル拡張子と主要構文から、資料をコード・SQL・JSON・Logへ分類します。
- 認証情報を入力前に削除し、形式に対応する専用ツールで処理します。
- 同じ業務用語が複数資料へ残っていないか横断的に検索します。
- 調査担当者が対応関係を追えるよう、必要なダミーIDの一貫性を確認します。
よくある質問
- 拡張子と中身の言語が違う場合は何を選びますか?
- 拡張子ではなく、共有したい主要構文に対応するツールを選びます。Java文字列内のSQLなどは、外側を処理した後に内側の実値も確認してください。
- 汎用の文字置換では不十分ですか?
- 括弧、引用符、同一識別子の対応を壊しやすく、置換漏れも起きます。構造に対応したツールを使い、最後に目視確認する方が安全です。