我在2017年写了一个简单的财务跟踪应用程序,它使用Heroku后端和Postgres数据库。应用程序突然停止工作,我将问题追溯到数据库。
我无法连接到数据库,看到以下错误:
psql: FATAL: too many connections for role我想可能是应用程序有连接泄漏,所以我关闭了前端(我是唯一使用它的人),并重置了所有的数据库连接。然后我可以登录到数据库,并注意到所有这些奇怪的角色(数百个?)我都认不出来了。

当我注销psql时,我尝试重新登录,但再次被拒绝,并出现"too many“错误。我可以重新登录的唯一方法是再次删除所有连接并立即登录。如果我等了2-3分钟,错误又回来了。我不认为我的heroku应用程序正在与数据库建立所有这些连接,因为我正在跟踪日志,而它只是坐在那里。
有没有人对这里可能发生的事情有什么看法?我是不是被黑了?你将如何进一步调试它,以及我该如何修复这个问题?
谢谢!
发布于 2020-08-31 13:55:55
数据库显然已经被黑了。
将其关闭并立即删除。
从已知良好的备份恢复到其他群集。
从现在开始,选择好的密码,并使用限制性的pg_hba.conf,例如,不允许超级用户远程访问。
永远不要以超级用户身份操作您的应用程序。
检查您的应用程序是否存在SQL注入漏洞。
发布于 2020-08-31 07:39:46
这可能是因为一个机器人(由黑客制造)正在扫描互联网并尝试CVE漏洞(N天漏洞),看看它是否易受攻击,然后发动这种类型的攻击,或者它可能是因为VNAT上的某人试图做一些奇怪的事情,但有一件事可以肯定,它是一个机器人,因为你不能手动启动那么多连接。
https://stackoverflow.com/questions/63662705
复制相似问题