Swagger API 信息泄露漏洞
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。相关的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。
Swagger生成的API文档,是直接暴露在相关web路径下的。所有人均可以访问查看。通过这一点即可获取项目上所有的接口信息。那么结合实际业务,例如如果有文件读取相关的接口,可能存在任意文件下载,相关的业务访问可能存在未授权访问等。文章来源地址https://www.toymoban.com/news/detail-529243.html
解决办法
- 在生产节点禁用Swagger2,在maven中禁用所有关于Swagger包(不建议)
- 结合SpringSecurity/shiro进行认证授权,将Swagger-UI的URLs加入到各自的认证和授权过滤链中,当用户访问Swagger对应的资源时,只有通过认证授权的用户才能进行访问。
swagger:
config:
# 开启身份认证功能
login: true
username: admin@190610
password: admin@190610
- 结合nginx/Filter对对应的接口端点进行访问控制。
enable = false 关闭
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo()).enable(false)
.select()
//为当前包路径
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
文章来源:https://www.toymoban.com/news/detail-529243.html
到了这里,关于Swagger API 信息泄露漏洞解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!