2017-08-01 3 views
0

Fortifyを使用してコードをスキャンした後、「安全でないJNI(Input Validation and Representation、Semantic)」という問題が発生します。私はFortifyの推奨事項を参照し、ウェブサイト上のいくつかのソリューションを検索しましたが、問題を解決できません。Androidスタジオでスキャンを強化する

私は、このwebsiteのFortifyで推奨されている準拠ソリューションに従っています。 私はFortifyを使ってウェブサイトから推奨コードをスキャンしても、同じ問題が発生します。

私のコードを以下に示します。

public final class JNI_Related { 

// JNI 
public native FileDescriptor open(String path, int baudrate, int data_bits, char parity, int stop_bits); 

public native void close(); 

public FileDescriptor DoOpen(String mPath, int mBaudrate, int mData_bits, char mParity, int mStop_bits){ 

    if(mmPath.length() == 0){ 
     throw new NullPointerException(); 
    } 

    if((mmBaudrate < 0) || (mmData_bits < 0) || (mmStop_bits < 0) || (mmParity == 'a')){ 
     throw new IllegalArgumentException(); 
    } 
    mFd = open(mmPath, mmBaudrate, mmData_bits, mmParity, mmStop_bits); 

    if(mFd == null){ 
     throw new IllegalArgumentException(); 
    } 
    return mFd; 
} 

public void DoClose(){ 
    close(); 
} 

static { 
    System.loadLibrary("jniutill"); 
} 

}

私は実際にいくつかの助けが必要!あなたのネイティブメソッドで

+0

この回答をお探しですか? –

答えて

0

は、あなたがそれらをpublicとして宣言した:

public native FileDescriptor open(...); 
public native void close(); 

、あなたの質問ににリンクされているサイトが安全でないJNIの問題を解決するために、native方法はprivateとしてマークされなければならないことを言いますnativeメソッドに到達できる唯一の方法は、入力パラメーターをサニタイズするラッパーメソッドpublicを使用することです。

+0

ご返信ありがとうございます。私は公衆を私的に変更した後も同じFortifyの問題を抱えています。 @ user1684458 –

関連する問題