@Source と@Sink を knowledge base (ナレッジベース) に追加する

エンジンが指摘を検知するためには、少なくとも 1 つの source と1 つの sink を定義する必要があります。指摘が発生するのは、ソースで作成されたデータがシンクで使用されている場合のみです。

kwcreatechecker によって生成された .jkb ファイルには、source、sink、check、および prop の例が含まれます。

  1. JNDI.PRINT\kb\jndi.print.jkb を開きます。
  2. ソースを追加します。上記のサンプルに基づくと、この指摘のソースは Context クラスの list メソッドの呼び出しです。 この呼び出しは、表示するべきではない、危険性のあるデータを返します。
    package javax.naming; 
    
    import java.util.Hashtable; 
    
    public interface Context { 
        @Source("return") public NamingEnumeration list(String name) throws NamingException; 
    }
    
  3. シンクを追加します。この場合、シンクは println メソッドの呼び出しです。
    package java.io;
    
    import java.util.Formatter; 
    import java.util.Locale; 
    
    public class PrintStream {    
        public void println(@Sink Object o); 
    }
    
  4. 保存し、ファイルを閉じます。

関連トピック リンク アイコンSee also