nodejs中的数据库连接安全性

时间:2017-03-16 14:05:53

标签: node.js database

当我连接到节点中的数据库时,我必须添加数据库名称,用户名,密码等。如果我是对的,每个用户都可以访问js文件,当他知道地址时。那么......它是如何运作的?这样安全吗?

2 个答案:

答案 0 :(得分:2)

最终用户永远不应该访问Node.js服务器端源文件。

在像Express这样的框架中,惯例是静态资产的请求由静态中间件处理,静态中间件仅从解决方案中的特定文件夹提供文件。因此忽略了对代码库中存在的其他源文件的显式请求(404传递给管道)。

咨询

https://expressjs.com/en/starter/static-files.html

了解更多详情。

虽然还有其他可能的选项来进一步限制敏感数据的可见性,但请注意,管理员权限的任何人都可以访问您的服务器,当然能够检索数据(这是完全可以接受的)。 / p>

答案 1 :(得分:0)

我假设数据库和节点位于同一台服务器上。我还假设您已经创建了JSON或env文件或者用于获取数据库参数的函数。

一台服务器=一切(代码+数据库)不是世界上最好的设置。但是,如果您受限于此,则取决于您使用的数据库。 Mongo Community Edition将允许您设置有限的安全协议,例如在DB本身内创建用户。这包含{username password rights}组合,根据您设置的用户类型授予缩放权限。这不是万无一失的,但即使有人掌握了你的数据库参数,它仍然是一种保护。如果您使用的是更广泛的MongoDB版本,那么这个问题将是多余的。至于其他数据库,您需要查阅文档。

然而,话说回来,你应该在公共服务器后面设置一个数据库,并且只允许SSH进入它,并使用一个开放端口接收程序中的信息。作为一个server = everthing格式在最终运行中不安全,虽然它可以用于开发。

如果您使用的是MongoDB,可能需要查看MongooseMongoose Encryption。我个人不使用它们,但它可以在短期内解决您的问题。

如果您的数据库是MySQL等,那么我建议您查看文档。