为什么我可以在没有SSL的情况下访问Heroku中的爱好开发Postgres?
这是我的节点代码:
const { Client } = require('pg');
const connectionString = process.env.DATABASE_URL;
const client = new Client({
connectionString: connectionString,
ssl: false
})
heroku pg:credentials:url DATABASE
返回sslmode=require
,但我也可以与psql DATABASE_URL
进行远程连接,而无需使用sslmode=require
作为查询参数。
根据Heroku docs and code samples并非如此。唯一可以解释的原因是Heroku不支持静态on the Hobby tier加密,那么为什么要在传输过程中加密呢?
答案 0 :(得分:1)
我联系了Heroku支持部门,得到的答复是,server side
上目前尚未强制执行
他们的数据团队确认这是“已知但未记录”的事情。不幸的是,这些文档具有误导性,例如here和here:
如果不使用sslmode = require,则会出现连接错误
答案 1 :(得分:0)
静态加密与与Postgres实例的安全连接无关。毕竟,“静止”与在客户端和数据库主机之间来回移动字节完全相反。
这几乎可以肯定是由于数据库主机本身的配置所致,但无法确定。猜测是,这样做的原因是降低了使用服务的难度,因为业余爱好层是免费的,并且受到业余爱好者和较新的开发人员的欢迎。