我在Spotbugs中使用FindSecBugs插件对我的代码进行静态安全分析。我的一些项目是使用gradle 构建的,有些是使用maven完成的。我已经成功测试了 maven,它给了我一个 xml 报告,例如:
BugInstance instanceOccurrenceNum="0" instanceHash="f52576b87914efbf135c588c2449648e" cweid="117" rank="15" abbrev="SECCRLFLOG" category="SECURITY" priority="3" type="CRLF_INJECTION_LOGS" instanceOccurrenceMax="0">
似乎工作正常。接下来我尝试为 Gradle 做同样的事情。看起来我没有获得 InstanceHash 属性。我使用该属性来确保错误不会重复。我收到一份报告
BugInstance type="PATH_TRAVERSAL_IN" priority="1" rank="10" abbrev="SECPTI" category="SECURITY">
我的 build.gradle 文件:
apply plugin: "com.github.spotbugs"
dependencies {
spotbugsPlugins 'com.h3xstream.findsecbugs:findsecbugs-plugin:1.9.0'
}
spotbugs {
toolVersion = '3.1.12'
sourceSets = [ sourceSets.main ]
ignoreFailures = true
reportsDir = file("$project.buildDir/findsecbugs")
effort = "max"
reportLevel = "high"
includeFilter = file("$rootProject.projectDir/fsb-include.xml")
excludeFilter = file("$rootProject.projectDir/fsb-exclude.xml")
}
我做错什么了吗?为什么我的 XML 报告中缺少某些属性?