场景

安全扫描,扫描到了swaggerui未授权访问漏洞。

请求描述:

{"url":"http://10.12.180.159:15065//swagger-resources",
"method":"GET","params":[]}

返回报文:

[
    {
        "name": "default",
        "location": "/v2/api-docs",
        "swaggerVersion": "2.0"
    }
]

这在安全来说,涉及到数据泄露,因此需要修复。

解决方案

通过配置修复

一般来说,引入swagger的时候都应该留有开关。 这样的话,通过配置就能解决。
例如:

swagger.enabled=false

或:

knife4j:
  enable: false

knife4j是一种集成了swagger和openapi的框架,所以有时是这个配置。

调整代码修复

这和上面说的配置调整,其实算是一回事,就是在swagger配置类里面加开关(方式不只一种,起到效果即可)。

例如:

@Configuration
@EnableSwagger2
@ConditionalOnProperty(name="swagger.enabled",havingValue = "true")
public class SwaggerConfig {
}

当然,如果确定不用。 更简单粗暴的办法是直接注释掉这个类,也是可以的。