JD.ST.POS
当检查 String.indexOf(..) 方法的结果是否大于 0 时,出现 JD.ST.POS。
漏洞与风险
方法 String.indexOf(..) 返回找到的符号的位置,开头为 0,因此检查是否大于 0 也许不正确,因为这遗漏了字符串中符号居首的所有情况。
缓解与预防
将 >0 的检查替换为 ==-1 或 >=0 的检查。
示例 1
复制
public boolean checkFile(String file) {
if (file.indexOf("/")>0) {
return true;
}
return false;
}
针对第 10 行的调用报告 JD.ST.POS:对于方法 indexOf 的结果,应该执行 >=0 或 <0 的检查,而不是执行 >0 的检查。