NodeJS 加密到 Postgres 的连接字符串
Posted
技术标签:
【中文标题】NodeJS 加密到 Postgres 的连接字符串【英文标题】:NodeJS encrypted connection string to Postgres 【发布时间】:2017-05-30 01:31:11 【问题描述】:我正在通过构建 JWT 服务器来学习 NodeJS。基本上我想授权用户使用 PostgreSQL 数据库中的凭据。我正在考虑使用 node-postgres、passport、pg 与 PostgreSQL 连接,但我还没有找到加密存储连接值的方法。理想情况下,我会将它们存储在属性文件中,以便我可以根据环境更改它们。
我看到的大多数例子都是这样的:
var pg = require('pg');
var conString = "postgres://YourUserName:YourPassword@localhost:5432/YourDatabase";
有人可以帮我演示如何加密和使用我的凭据,这样我就不必对源代码中的纯值进行硬编码了吗?
【问题讨论】:
欣赏这是一个旧答案;主要是为后代写这个。像这样将凭据放在源代码中通常是一个坏主意,通常是一个非常糟糕的主意。从部署环境中提取它们可为您提供更精细的访问控制和操作灵活性。 【参考方案1】:似乎已经存在用于此的 npm 包。见https://www.npmjs.com/package/secure-conf。似乎可以满足您的需求。
请注意,您还应该使用 SSL 保护您与数据库的连接。请参阅SSL for PostgreSQL connection nodejs 获取解决方案。
【讨论】:
感谢您的快速而精彩的回答 - 现在开始!【参考方案2】:这应该会有所帮助。
如果你使用sequelize连接postgres
const sequelize = new Sequelize("DB", 用户名, 密码, 主机:“/var/run/postgresql”, 方言:“postgres”, );
注意:从您的 pgsl 数据库中获取主机字符串可能不同 //
【讨论】:
以上是关于NodeJS 加密到 Postgres 的连接字符串的主要内容,如果未能解决你的问题,请参考以下文章
在nodejs中连接到heroku postgres db时出错
如何使用 NodeJS 从 EC2 连接和查询 PostgreSQL RDS?