侧边栏壁纸
博主头像
lac博主等级

行动起来,活在当下

  • 累计撰写 66 篇文章
  • 累计创建 12 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

docker升级yapi(运维功力不减当年)

Hude
2023-04-12 / 0 评论 / 1 点赞 / 12 阅读 / 2062 字

docker升级yapi(运维功力不减当年)

事件起因:之前在服务器上搭建了Yapi,属于很久没用了,但是最近服务器上的其他应用出现崩溃的现象,查了一下,cpu爆炸了,顺藤摸瓜,发现是老版本的yapi 出现了Yapi api mongodb 注入致远程命令执行漏洞和Yapi Mock远程命令执行漏洞,因此急需关闭yapi开放注册功能和升级yapi

关闭yapi开放注册功能

1.docker安装情况下:

docker exec -u root -it 容器名 /bin/sh

使用上诉命令进入容器,其他安装方式可以跳过此步骤

2.进入安装目录/api

cd /api

3.找到config.json配置文件,编辑配置文件,新增"closeRegister": true,关闭注册功能

微信图片_20230412172049.png

关于这个参数,有兴趣的同学可以cd到/api/vendors/server/controllers这个目录下,user.js中有个注册接口reg,里面第一个判断就是查看yapi.WEBCONFIG.closeRegister参数是否配置为true,如果配置即为关闭注册功能。

微信图片_20230412170625.png

yapi更新

说完关闭注册,现在来看下更新,打开vendors的那一刻,看到熟悉的node_modules,哟,这不是nodejs嘛(手动狗头),才发现yapi是用nodejs+mongodb开发的。言归正传,更新我是用官方给的工具yapi-cli来更新的,这样操作难度和维护数据完整度来说消耗最小

1.安装yapi-cli,建议是使用国内镜像源,第一是快一点,第二是可以避免某些莫名其妙的问题?我在安装的时候就遇到了node-sass依赖问题。

npm install yapi-cli -g --registry https://registry.npm.taobao.org

2.查看可升级版本

yapi-cli ls

3.升级

yapi-cli update
or
yapi-cli update -v v1.12.0 // 按指定版本升级

升级注意:我在升级过程中,升级脚本跑完之后,显示没问题,但是重启镜像之后,显示缺失qs模块,有点坑...,这个问题会导致docker容器启动不起来,然后也不能进容器解决问题,最后是通过,硬改docker yapi容器的有问题的js文件,也就是注释qs。待重启好之后,进入npm 安装qs解决。

总结:之前做过运维相关的工作,对Linux和docker还算熟悉,不过很久没用了,这次解决这两个问题,发现自己对命令的掌握还是比较熟悉的,很多命令还是记得住的,这就是孰能生气噶,同时也感谢之前的工作经历吧~

1

评论区