yapi禁用注册功能

Posted DonotCTR

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了yapi禁用注册功能相关的知识,希望对你有一定的参考价值。

1、为什么禁用注册功能

      YAPI默认配置开启了用户注册功能且无需审核,此外管理员账号还存在默认口令,登录后的用户都具备使用Mock功能执行脚本的权限。黑客登录YAPI 管理平台后可利用Mock功能在受影响服务器上执行任意的javascript代码,从而控制目标服务器,如下图,公司YAPI服务器一些常用命令无法使用ss、netstat、ps、lsof,使用wget命令下载,/usr/bin/bsd-port/getty和/usr/bin/node开启进程,同时也会出现流量过大。

yapi禁用注册功能_yapi

yapi禁用注册功能_注册新用户_02

解决方式:

杀死进程

killall -9 /tmp/moni.lod 
killall -9 /tmp/gates.lod
killall -9 /usr/bin/bsd-port/getty/lock

清除文件

rm -rf /tmp/moni.lod /tmp/gates.lod 
rm -rf /etc/init.d/selinux /etc/init.d/DbSecuritySpt
rm -rf /etc/rc1.d/S97DbSecuritySpt /etc/rc1.d/S99selinux
rm -rf /etc/rc2.d/S97DbSecuritySpt /etc/rc2.d/S99selinux
rm -rf /etc/rc3.d/S97DbSecuritySpt /etc/rc3.d/S99selinux
rm -rf /etc/rc4.d/S97DbSecuritySpt /etc/rc4.d/S99selinux
rm -rf /etc/rc5.d/S97DbSecuritySpt /etc/rc5.d/S99selinux
rm -rf /usr/bin/bsd-port/ /tmp/pythompy
rm -rf /usr/bin/lsof /bin/ps /bin/ss /bin/netstat

2、如何禁用注册功能

#vim /data/my-yapi/config.json

"port": "3000",
"let filter": "process|exec|require",
"closeRegister":true, #关闭注册功能
"adminAccount": "admin@admin.com",
"db":
"servername": "127.0.0.1",
"DATABASE": "yapi",
"port": "27017"
,
"mail":
"enable": false,
"host": "smtp.163.com",
"port": 465,
"from": "***@163.com",
"auth":
"user": "***@163.com",
"pass": "*****"


# node vendors/server/app.js  >& /dev/null &

3、禁用注册功能如何注册新用户

由于通过web登陆页面无法通过注册功能来实现新用户注册,所以唯一可以想到的是能不能通过数据库端插入数据来实现呢,YAPI后端使用的数据库是MongoDB,如登陆MongoDB

# mongo
> use yapi
switched to db yapi
> show tables
adv_mock
adv_mock_case
avatar
follow
group
identitycounters
interface
interface_case
interface_cat
interface_col
log
project
statis_mock
storage
token
user 使用用户表即可完成
wiki
>

yapi禁用注册功能_linux_03

新用户注册会涉及到两个问题,用户名和密码,密码的话是通过"password"和"passsalt"字段进行加密码,其他需要修改的字段有"_id" 、"username" 、"email",还有一些字段直接和原有用户一样也是可以正常登陆。关键问题还是在于密码如何获取呢,"password"和"passsalt"字段,可以通过已知用户的密码拉判断在插入新记录时,应该输入什么字段。

例如:

"password" : "f6e15d6f1f53d483803a45bd49cbf6214d19ebe6", "passsalt" : "9k55okoxar6"

以上两个字段的值表示的密码为123456

那么在新创建用户时,也是沿用以上两个字段的值:

例如:

db.user.insert( "_id" : 300, "study" : true, "type" : "site", "username" : "test", "password" : "f6e15d6f1f53d483803a45bd49cbf6214d19ebe6", "passsalt" : "9k55okoxar6", "email" : "test@test.com","role" : "admin", "add_time" : 1611824880, "up_time" : 1611824889, "__v" : 0 )

通过如上操作,最后新用户的用户名为test,密码:123456

上面只是举个例子,"password" : "f6e15d6f1f53d483803a45bd49cbf6214d19ebe6", "passsalt" : "9k55okoxar6" 这两个值可以通过你个人账号就可以获取相关密码,每次创建账号时,采用个人账号的密码的这两个字段值进行创建,然后将用户名和密码发给相关的开发人员即可。

以上是关于yapi禁用注册功能的主要内容,如果未能解决你的问题,请参考以下文章

一站式接口文档及测试工具yapi介绍

我可以让 Firebase 使用用户名登录过程吗?

YAPI高效,易用,功能强大的API管理平台

如何在注册页面实现动态检测用户名的功能?

使用 win32 API 功能启用/禁用任务管理器,而不是通过 Windows 注册表

心迹 使用说明&功能展示