如何解决在生产PostgreSQL连接中将rejectUnauthorized设置为false可以吗?
我们最近搬到了Heroku,并尝试将我们的应用程序连接到数据库时,它不断拒绝我们的查询,并显示消息“自签名证书”。传递rejectUnauthorized
可以解决此问题,但现在我想知道,我们应该在生产中进行此操作吗?如果没有,那么什么方式适合我们连接到Heroku PG数据库?
const pgp = require('pg-promise')(/*initOptions*/);
const {ConnectionString} = require('connection-string');
const cnObj = new ConnectionString(process.env.DATABASE_URL);
const cn = {
host: cnObj.hostname,port: cnObj.port,database: cnObj.path?.[0],user: cnObj.user,password: cnObj.password,ssl: {
rejectUnauthorized: false,},};
const db = pgp(cn);
解决方法
您正在运行的风险是有人介于您和Heroku服务器之间,并冒充后者。然后,他们可以向您出示自己的证书并与您协商连接。但是,由于他们不知道您的密码,因此他们将无法连接到真正的Heroku服务器,因此,他们最好做到这一点,即向您提供伪造的数据,并尝试从您发送的SQL语句中收集秘密信息。他们。
所有假定攻击者都可以控制您和Heroku服务器之间的网络节点之一。
因此,我要说的是,尽管存在残留风险,但除非您使用的是真正敏感的数据,否则我不会失去太多的睡眠,在这种情况下,妄想症是一种优点。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。