簡體   English   中英

為什么 Fortify SCA 將某些 Java 三元條件標記為始終為假或始終為真

[英]Why does Fortify SCA flag some Java ternary conditions as Always false or Always true

我最近一直在查看 Fortify 的許多發現,我試圖了解為什么 Fortify SCA 將一些而非全部 Java 三元條件標記為“始終為假”或“始終為真”。 下面的例子。
任何人都可以提供對此的見解嗎? 提前致謝。

這些示例都在實體類中。

這被標記為“始終為假”。

public void setGmtInd(String gmtInd) {
    this.gmtInd = gmtInd != null ? gmtInd.toUpperCase() : gmtInd;
}

這被標記為“始終為真”。

public void setDefaultValueInd(String defaultValueInd) {
    this.defaultValueInd = defaultValueInd != null ? defaultValueInd.toUpperCase() : defaultValueInd;
}

這未被標記為發現。

public void setUserid(String userid) {
    this.userid = userid != null ? userid.toUpperCase() : userid;
}

我深入研究了應用程序代碼,發現了以下內容。
標記為 Always false 的那些總是使用 null 值調用。

this.setGmtInd(null);

標記為 Always true 的那些總是使用硬編碼值調用。

this.setDefaultValueInd("Y");
this.setDefaultValueInd("N");

當然,沒有被標記的那些是被正確使用的。

this.setUserid("");
this.setUserid(cmosUser.getUserid());

我很抱歉浪費你的時間在這個上......下一次,我將首先深入挖掘。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM