使用客户端语言与数据库进行通信是否安全(例如node.js)?

时间:2018-07-27 17:25:00

标签: node.js

我正在尝试使用此nodejs库https://github.com/sidorares/node-mysql2建立MySQL连接和查询 但是,这种方法可以像这样显示我的数据库访问身份验证信息

const connection = mysql.createConnection({
   host: 'localhost',
   user: 'root',
   database: 'test'
});

我想知道这是否可以保证安全。

2 个答案:

答案 0 :(得分:1)

  • 将数据库访问身份验证信息放在客户端并不安全。

  • node.js不是客户端语言,它恰好也可以使用 js,并且主要用于服务器端(...很好,除非您正在使用 电子)。

  • node-mysql2库应该在node.js服务器中使用 应用程序,而不会向客户端公开任何身份验证信息。

答案 1 :(得分:0)

JavaScript本身并不是固有的客户端或服务器。它最初是在客户端环境中的浏览器中使用时才知道的。但是,语言只是一种语言,可以有多种使用方式。

然后,使用相同的Javascript语言开发了node.js。 node.js可用于多种应用程序,其中大多数是服务器端的。例如,如果您使用node.js构建Web服务器,那么它是一种服务器端环境,而该环境可能是构建服务器所基于的任何其他环境,无论该语言是Python,Java,PHP,Ruby还是C#。

因此,只要您已保护对服务器的物理访问和网络访问,就可以在node.js服务器代码中使用数据库密码是绝对安全的,这样普通公众只能使用服务器的公共接口,而不能使用对服务器管理,代码等的任何访问权限...

您似乎已经知道,在浏览器中运行的客户端Javascript中使用数据库密码并不安全,因为该代码及其所有网络都可供公众使用。