「ソースとシンク」ビュー

「ソースとシンク」ビューでは、入力および出力のトレースに基づいて検出結果を表示できます。

「ソースとシンク」ビューは、以下の 3 つのセクションに分かれています。

  • ソースとシンク: 左側のパネルに、以下の 3 つの最上位ノードがあります。
    • ソース: ソースはプログラムへの入力で、ファイル、サーブレット要求、コンソール入力、ソケットなどがあります。ほとんどの入力ソースでは、返されるデータの内容や長さが制限されません。チェックされていない入力については、汚染されているものと見なされます。ソースは、すべての検出結果表の「ソース」列に表示されます。
    • シンク: シンクは、データの書き込み先になる、あらゆる外部フォーマットです。シンクの例としては、データベース、ファイル、コンソール出力、ソケットなどがあります。データをチェックせずにシンクに書き込むと、重大なセキュリティー脆弱性となる可能性があります。
    • 逸失シンク: 逸失シンクとは、トレースできなくなった API メソッドのことです。

    各ノードは、影響を受けるパッケージを表示するように展開できます。次に、パッケージを展開して、影響を受けるクラス、さらにメソッドを表示できます。これらのメソッドを展開すると、トレースの反対側にあるパッケージ、クラス、およびメソッドを表示できます。例えば、特定のシンクに関心がある場合、Sinks ルートの下のメソッドにドリルダウンすることができます。メソッドに達すると、そのメソッドの下のツリーには、そのシンクに通じるすべてのソースに戻るパスが示されます。

    - Sources
    	- packageA
    		- classA
    			- methodA
    				- packageB
    					- classB
    						- methodB (at opposite end of trace)
    - Sinks
    	- packageB
    		- classB
    			- methodB
    				- packageA
    					- classA
    						- methodA
    - Lost Sinks
    

    このツリー・ビューでの選択内容によって、ビューの他の 2 つのセクションに表示される内容が決まります。

  • 中間ノード (Intermediate nodes): ビューのこのセクションには、「ソースとシンク」セクションでの選択内容に該当するトレースのすべての中間ノードを結合したものが表示されます。ここで、検出結果表に表示される内容を詳細化することができます。

    このセクションは、デフォルトでは表示されません。「中間呼び出し表の表示/非表示」をクリックすると、表示したり、再度非表示にしたりすることができます。

    1 つのパッケージ、クラス、またはメソッドの検出結果のみを表示するには、その「必要」列のチェック・ボックスを選択します。1 つのパッケージ、クラス、またはメソッドの検出結果をフィルタリングで除外するには、その「削除」列のチェック・ボックスを選択します。このセクションで行ったフィルター設定を使用して、新規フィルターを作成できます。

    使用例: 「ソースとシンク」セクションに以下のツリー・ノードがあるとします。

    - Sources
    	- java.util
    		- Properties
    			- getProperty

    getProperty が選択された場合、検出結果表には、getProperty をソースとするトレースを含む検出結果のみが表示されます。この時点で、中間ノード・セクションには、ソースが getProperty であるすべてのトレースのすべての中間ノード (トレース内の、ソースおよびシンク以外のノード) が表示されます。ただし、トレースが特定の API を通過するかどうかには関心がないこともあります。例えば、getProperty からのデータが有効であることを保証する検証ルーチンがあるので、この検証ルーチンを通過するトレースは表示させたくない場合があります。中間ノード・セクションには、この検証ルーチンが含まれます。これがトレースの中間ノードであるためです。中間ノード・セクションで検証ルーチンを参照し、その「削除」チェック・ボックスをクリックします。これにより、検出結果表から、この中間ノードを通過するトレースを含むすべての検出結果が削除されます。

  • 検出結果: このセクションには、「検出結果」ビュー および検出結果を含む他のビューにある物と同じ 検出結果表 (および関連アクション) が含まれています。ビューの他の 2 つのセクションで表示対象として選択したソース、シンク、および中間ノードの検出結果が表示されます。