听说你在生产环境下还没关闭Swagger2,算你猛
发布日期:2021-05-06 22:29:00 浏览次数:16 分类:技术文章

本文共 1731 字,大约阅读时间需要 5 分钟。

点击上方蓝色字体,选择“标星公众号”

优质文章,第一时间送达

上一篇:

下一篇:已修复

作者:Java实用技术

http://mrw.so/4serH9

Swagger用于开发期间前端和后端API上的交流使用,请注意是开发期间也就是开发环境,测试环境也可以使用,但是生产环境就不需要使用了,因为生产环境前端已经和后端打通了就不需要在使用Swagger了,如果生产环境没有关闭Swagger有啥后果?这要看你写的程序的安全性了,一般swagger都是用于公司内部项目,一般安全防护都不高(稍微有点安全性就是加个密码),如果swagger暴露出来只要知道这个地址就能访问的话,那么你的api彻彻底底的暴露出去了,对于一些人能够从api中能够看出一些端倪,从而危害生产环境程序,还有一般swagger中都有一些为了便于开发调试的一些小后门比如一些mock接口,这些接口暴露出去危害非常大。

关闭Swagger有两种方式:

  • 方式一:在Swagger2Config上使用@Profile注解标识,@Profile({"dev","test"})表示在dev和test环境才能访问swagger-ui.html,prod环境下访问不了

  • 方式二:在Swagger2Config上使用@ ConditionalOnProperty注解,@ConditionalOnProperty(name = "swagger.enable", havingValue = "true")表示配置文件中如果swagger.enable =true表示开启。所以只需要在开发环境的配置文件配置为true,生产环境配置为false即可。

@Configuration@EnableSwagger2//@Profile({"dev","test"})@ConditionalOnProperty(name = "swagger.enable", havingValue = "true")public class Swagger2Config {}

这两种方式我一般使用第一种方式,因为第二种方式还要在每个环境文件中去配置,还要维护此值;Swagger一般用于开发和测试环境,所以直接限制Swagger启用的环境为dev和test即可,这样也不需要再维护配置文件了。

InteliJ IDEA 2019.03.03最新激活jetbrains-agent.jar

1.将jetbrains-agent.jar也放到InteliJ IDEA中的bin目录下。

2.配置VM Options,通过Help菜单 -> Edit Custom VM Options。

在文件中最后一行添加如下配置,如果是Windows电脑就写你自己电脑jetbrains-agent.jar实际放入的绝对路径,如 -javaagent:D:\\\xxx\jetbrains-agent.jar。

-javaagent:/Applications/IntelliJ IDEA.app/Contents/bin/jetbrains-agent.jar

也可以直接编辑idea.vmoptions文件增加-javaagent配置,不过建议使用上面菜单的配置方式。

3.重启IDEA,选择License Server, 输入最新的值为 http://fls.jetbrains-agent.com, 点击Test Connection 或者 Close即可。本方法亲测有效,已经使用了一段时间仍然有效。

精彩推荐1、企业API接口设计之token、timestamp、sign具体实现2、一个基于 Spring Boot 的项目骨架3、Spring 和 Spring Boot 之间到底有啥区别?4、为什么代码规范要求SQL语句不要过多的join?5、三万字、91道MySQL面试题(2020最新版,建议收藏)6、解答千古难题:路由器到底用不用定期关闭?7、惊呆了,老外竟然用50中编程语言写“Hello,Word!”,我服了...8、IDEA太强悍了,调试器竟然支持实时数据流分析啦,提前知道代码怎么跑的?点个在看少个 bug
上一篇:捅娄子了,写个bug被国家信息安全漏洞共享平台抓到了?
下一篇:为什么代码规范要求SQL语句不要过多的join?

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年03月12日 05时42分03秒