機密データのフィルタ

アプリケーションにコントローラに表示すべきではない機密データが含まれている場合は、Node.js エージェントの require ステートメントに次のデータフィルタを適用できます。

機密データフィルタを追加する

機密データフィルタを有効にすると、コントローラは一致する環境変数またはシステムプロパティの値に対してアスタリスクを表示します。

dataFilters: [{
   "appliesTo": "http-headers",
   "matchPattern": "host"
}],

環境変数フィルタ

デフォルトでは、Node.js エージェントは、大文字と小文字を区別しない部分文字列「password|key」を含む環境変数/システムプロパティを使用して機密データフィルタを有効にします。

dataFilters: [{
   "appliesTo": "env-vars",
   "matchPattern": "password|key"
}],

機密 URL フィルタ

機密 URL フィルタを使用して、Transaction Snapshot の詳細の URL から機密情報を難読化するようにエージェントを構成できます。

urlFilters: [{
   "delimiter": "/",
   "segment": "1",
   "matchPattern": "a",
   "paramPattern": "bar"
}],

機密 URL フィルタは、1 つのセグメントで matchPattern をチェックします追加のセグメントを確認するには、追加の JSON 配列を追加します。

フィルタは、/aa/bb/cc***/bb/cc の形式で要求を処理します。

注: matchpattern/parampattern は標準の正規表現です。
プロパティ名 説明
urlFilters セグメントにルールを追加する場合は、オブジェクトをさらに追加できる配列。
delimiter 必要な文字を URL セグメントエンドポイントとして指定します。エージェントは各区切り文字インスタンスでURLを接続してセグメントを作成します。
segment 少なくとも 1 つの数字を昇順で指定する必要があります(3,52,6 など)。ワイルドカード(*)は使用できません。

URL セグメントフィルタ

matchpattern 正規表現を使用して、Node.js エージェントは指定されたセグメントをフィルタ処理するかどうかを決定します。

複数のルールがある場合は、一般的なルールの前に具体的なルールをリストします。配列にリストされているルールは、順序に基づいて評価されます。

ルール A:

{
 'delimiter': '/',
 'matchPattern': '[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}\/.{50,}',
 'segment': '3,5'
}

ルール B:

{
 'delimiter': '/',
 'matchPattern': '[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}',
 'segment': '3'
}

この例では、最初のルール A は 3 番目と 5 番目のセグメントをマスクするため、ルール B の前にルール A をリストする必要があります。

ルール B がルール A の前にリストされて評価された場合、3 番目のセグメントはマスクされますが、5 番目のセグメントはマスクされず、機密情報が漏洩する可能性があります。

URL パラメータフィルタ

paramPattern 正規表現を使用して、Node.js エージェントは指定されたクエリパラメータをフィルタ処理するかどうかを決定します。

すべての URL パラメータをマスクする必要がある場合は、さらに指示を配列に追加できます。

{ "delimiter": "/", "matchPattern": "", "segment": "99", "paramPattern": ".+"}

Node.js エージェントは、すべての URL パラメータをフィルタで除外します。

機密メッセージフィルタ

機密メッセージフィルタを使用して、エージェントがログメッセージから収集したテキストメッセージ、または例外からの詳細メッセージに含まれる機密情報を難読化するようにエージェントを構成できます。

messageFilters: [{
   "messageType": 
"throwable",
   "matchPattern": 
"Error.*MySQL.",
   "redactionRegex": "SQL"
}]