安装sonar并配置
docker安装sonarqube,sonarQube静态代码扫描 – Joson6350 – 博客园 (cnblogs.com)
对webgoat进行sonar扫描
扫描结果
bugs
Change this condition so that it does not always evaluate to “false”
意思是这里的else if语句不会执行,因为ipAddressKnow为true,所以if 和else if的条件结果是一样的。
Use try-with-resources or close this “PreparedStatement” in a “finally” clause.
提示资源没有关闭,需要在finally中进行资源关闭,但是把资源关闭放到finally中由提示这样写不规范有异味。所以它推荐的写法是将创建资源流的代码放在try()中,这样系统会自动的关闭资源,不需要我们写.close()方法
【转】Sonar扫描bug修复 – 登风360 – 博客园 (cnblogs.com)
“Random” objects should be reused
问题:在类的多个方法中使用了Random random = new Random();不应该在方法内创建random实例,而应该把random实例创建为类的属性,可以在多个地方调用,而且建议用SecureRandom is preferred to Random。
解决:随机数定义为一个属性,然后在下面的方法里面生成随机值
private Random rand = SecureRandom.getInstanceStrong(); // SecureRan服务器托管网dom is preferred to Random
public void doSomethingCommon() {
int rValue = this.rand.nextInt();
//...
Use the “equals” method if value comparison was intended.
这个误报了,因为这里!=是用来判断不为null,跟值比较用的是equals方法
合规的方案也是这样写的。
String firstName = getFirstName();
String lastName = getLastName();
if (firstName != null && firstName.equals(lastName)) { ... };
Do something with the “boolean” value returned by “createNewFile”
意思是这个方法可能失败,但是并没有失败处理。
Compliant Solution
public void doSomething(File file, Lock lock) {
if (!lock.tryLock()) {
// lock failed; take appropriate action
}
if (!file.delete()) {
// file delete faile服务器托管网d; take appropriate action
}
}
Null pointers should not be dereferenced
代码中存在空指针解引用的问题。空指针解引用指的是当一个对象为空(null)时,尝试访问它的方法或属性。
为了修复这个问题,你需要确保在访问对象的方法或属性之前,先进行空指针检查
A “Map” cannot contain a “String” in a “WebGoatUser” type.
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
一、前言 Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。目标是使客户端和文件系统作为服务器以同样的速度来更新文件的方法,参数和模型紧密集成到服务器。 Swagger能够在线自动生成 RESTFul接口的文档,…