Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

莫名数据库里的数据就没了 #1693

Open
KnorienChang opened this issue Apr 14, 2020 · 25 comments
Open

莫名数据库里的数据就没了 #1693

KnorienChang opened this issue Apr 14, 2020 · 25 comments

Comments

@KnorienChang
Copy link

版本号

1.5.0

什么问题

本地部署的数据库数据被清除了

如何复现此问题

登录提示账号不存在,包括管理员账号。同时查MongoDB的数据库,仅存了users表,而且users表也空了。。。

什么浏览器

Chrome

什么系统(Linux, Windows, macOS)

macOS

@KnorienChang
Copy link
Author

从部署完就没碰过部署的服务器,用了大概一个月了,今天查询文档的时候,突然就退出登录了,重新登录就提示账号不存在。上面写了好多接口文档现在都没了。

@tangcent
Copy link
Contributor

  • 目前还没在yapi中发现删除mongo表的逻辑.
  • 建议尝试查看yapi日志和mongo日志,也许可以获得一些有用的信息.

@KnorienChang
Copy link
Author

  • 目前还没在yapi中发现删除mongo表的逻辑.
  • 建议尝试查看yapi日志和mongo日志,也许可以获得一些有用的信息.

查看yapi日志无异常,MongoDB日志上连接了很多未知名IP,有dropDatabase操作的日志。。。

@lixiaohui8636
Copy link

我也有这个问题,被清除两次了,版本1.8.8

@tangcent
Copy link
Contributor

mongo库有设置密码吗?

@KnorienChang
Copy link
Author

mongo库有设置密码吗?

我正想说这个问题,我没有设置数据库密码,因为本来就是自己的服务器部署的,相对来说数据安全不是那么重就没有设置密码,和这个有关系吗

@lixiaohui8636
Copy link

lixiaohui8636 commented Apr 15, 2020 via email

@tangcent
Copy link
Contributor

可以检查一下你的安全策略.
如果mongo与yapi部署在一台服务器上的话,安全策略里出口只需要设置yapi的端口, mongo的端口不需要对外暴露.
当然最好是都不要用默认的. 设置一下mongo用户名密码,需要的话端口也可以换一个.

@KnorienChang
Copy link
Author

可以检查一下你的安全策略.
如果mongo与yapi部署在一台服务器上的话,安全策略里出口只需要设置yapi的端口, mongo的端口不需要对外暴露.
当然最好是都不要用默认的. 设置一下mongo用户名密码,需要的话端口也可以换一个.

确定是被攻击,被三方删除了。。。好像即使设置了密码也没啥用。

@tangcent
Copy link
Contributor

改下安全策略吧,mongo端口不要暴露出去.

@KnorienChang
Copy link
Author

改下安全策略吧,mongo端口不要暴露出去.

如果有可能的话,建议支持其他数据库吧,比如MySQL,这样就可以挂到现有项目的数据库上,单独配置MongoDB有学习成本。

同时建议在文档上添加MongoDB的基础设置教程和注意事项。

@transno
Copy link

transno commented Apr 16, 2020

mongo库有设置密码吗?

我正想说这个问题,我没有设置数据库密码,因为本来就是自己的服务器部署的,相对来说数据安全不是那么重就没有设置密码,和这个有关系吗

同样啊,也是14号,在自己服务器部署玩玩的,没设置密码,突然所有数据都被删了

@tangcent
Copy link
Contributor

你们的安全策略都是对外暴露吗?

@tangcent
Copy link
Contributor

如果有可能的话,建议支持其他数据库吧,比如MySQL,这样就可以挂到现有项目的数据库上,单独配置MongoDB有学习成本。

同时建议在文档上添加MongoDB的基础设置教程和注意事项。

改数据库的话影响太大.加些文档倒是可以考虑.

@zhancheng
Copy link

zhancheng commented Apr 20, 2020

我也遇到了同样的问题 莫名其妙的就被全删了 这个太影响体验了 吓的不敢用了 有什么好的办法可以解决

@lixiaohui8636
Copy link

我也遇到了同样的问题 莫名其妙的就被全删了 这个太影响体验了 吓的不敢用了 有什么好的办法可以解决

我这跟mongodb加了账户验证,改了端口,已经一周了,暂时还没没删除

@zhancheng
Copy link

zhancheng commented Apr 20, 2020

@lixiaohui8636 我这边已经跟踪到问题了,是mongodb的问题,阿里云的27017端口是默认对外网开启的,黑客可通过默认端口修改我们的数据库,这是黑客留下的脚印
image

@transno 希望在首页用大字提醒新的用户,不要让一些新用户再跟我们一样犯同样的问题

@qixiaoqi33
Copy link

@lixiaohui8636 我这边已经跟踪到问题了,是mongodb的问题,阿里云的27017端口是默认对外网开启的,黑客可通过默认端口修改我们的数据库,这是黑客留下的脚印
image

@transno 希望在首页用大字提醒新的用户,不要让一些新用户再跟我们一样犯同样的问题

那要如何避免这个数据库被删除的问题呢?

@tangcent
Copy link
Contributor

那要如何避免这个数据库被删除的问题呢?

#1693 (comment)

@tanzzj
Copy link

tanzzj commented Apr 24, 2020

近两年都有人反馈这个问题,这个是端口扫描攻击,同样的问题出现在redis和mongoDB。可以设置一下mongoDB的密码或者定时备份一下yapi数据解决问题
https://github.com/tanzzj/yapi-cooler

@dybxin
Copy link

dybxin commented Jun 2, 2020

我也遇到了同样的问题 莫名其妙的就被全删了 这个太影响体验了 吓的不敢用了 有什么好的办法可以解决

我这跟mongodb加了账户验证,改了端口,已经一周了,暂时还没没删除

我在这边设置数据库的访问密码,添加mongodb账户认证后,提示访问失败。请教下你这边的配置

@zhancheng
Copy link

@qixiaoqi33 直接关闭27017端口对外访问 并且修改数据库为账户认证

@jeremy16601
Copy link

我也遇到了同样的问题 莫名其妙的就被全删了 这个太影响体验了 吓的不敢用了 有什么好的办法可以解决

@jeremy16601
Copy link

已经2次了,重新部署了过了几天用的好好的,数据忽然又全没了,服务器没问题,非常安全

@tangcent
Copy link
Contributor

我也遇到了同样的问题 莫名其妙的就被全删了 这个太影响体验了 吓的不敢用了 有什么好的办法可以解决

现在好的办法就是修改安全策略,提高安全性.

已经2次了,重新部署了过了几天用的好好的,数据忽然又全没了,服务器没问题,非常安全

另外,你使用了哪些yapi插件? 是否开启了swagger同步?


检查一下mongo日志,看看有没有未知ip的连接,
一般连接建立后, mongo会打印一行日志: connection accepted from

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants