Knife4j (API接口文档系统生成工具) 不用登陆就可以查看接口请求参数。使用knife4J的项目存在安全隐患,当Knife4j地址泄露,会对目标系统造成破坏。因此访问Knife4J要进行安全认证检测。Knife4J在安全方面做了以下控制。(下面操作是在开源项目Ruoyi-cloud 实验的)
访问页面加权控制
1.1 在使用knife4j的模块下的application.yam或application.properties
application.yam 配置 knife4j: basic: enable: true username: test password: test
application.properties 配置 knife4j.basic.enable=true ## Basic认证用户名 knife4j.basic.username=zhangsan ## Basic认证密码 knife4j.basic.password=123
1.2 访问出现下面的提示,说明配置成功了(用新浏览器打开链接 才会出现提示,在原来管理后台菜单进入是不会出现。)
访问授权配置成功提示界面
开启生产环境,屏蔽所有资源接口(注意:需要疲敝的模块yml文件下加上!)
knife4j.production=true
2.1 配置成功的提示界面
屏蔽资源接口成功 提示界面
Knife4j 安全控制原理
3.1 knife4j.production=true 运行原理
A 启动从yaml 配置文件或其他配置文件,执行init, 读取配置参数值 进行封装。
B 访问knife4J 文档模块 执行doFilter,当production为true,并且uri为加了配置的路径,拦截返回提示 。
knife4j.production=true执行源码截图
3.2 knife4j.basic.... 配置 执行原理
跟 3.1差不多 ,就不多说了
knife4j.basic.... 配置 执行源码
knife4J 友好界面是从哪来的?
页面是在此jar包里面的如下