使用Node和Mysql

时间:2016-06-15 02:10:24

标签: mysql node.js

我正在开发角度app和php作为后端,它将对MySQL进行数据处理。最近我发现了Nodejs的node-mysql插件,它将通过JS与MySQL通信。

在那里提供的文件后,我有一个问题,我想在这里问一下,需要你们所有人的启示。

根据文档,我们必须将JS文件中的连接声明为

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'me',
  password : 'secret',
  database : 'my_db'
});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {
  if (err) throw err;

  console.log('The solution is: ', rows[0].solution);
});

connection.end();

通过在JS中提供所有敏感数据库登录数据,它是否会成为安全问题的一大漏洞?如果是,怎么能预防呢?

查询也将通过JS文件

完成
var mysql = require('mysql');
var pool  = mysql.createPool(...);

pool.getConnection(function(err, connection) {
  // Use the connection
  connection.query( 'SELECT something FROM sometable', function(err, rows) {
    // And done with the connection.
    connection.release();

    // Don't use the connection here, it has been returned to the pool.
  });
});

这是否意味着攻击者很容易找出我们用来查询数据库的查询是什么?与像PHP这样的服务器端语言不同,我们只是将它们与params一起调用。

在Nodejs上使用此驱动程序是否安全?

很抱歉这个问题是新手。

1 个答案:

答案 0 :(得分:1)

节点JS也是服务器端。 Node JS使用javascript进行编码,并不意味着它会向您的客户端浏览器公开。它只是在服务器端看到并作为后端响应客户端浏览器请求。

为了简单解释,只需将Node JS想象成PHP服务器,但是使用Javascript语言并且不需要apache服务器。当然,他们有不同的行为和许多不同的功能。您最好先阅读一些有关Node JS如何工作的教程,并在阅读高级教程之前尝试自己。