我正在开发角度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上使用此驱动程序是否安全?
很抱歉这个问题是新手。
答案 0 :(得分:1)
节点JS也是服务器端。 Node JS使用javascript进行编码,并不意味着它会向您的客户端浏览器公开。它只是在服务器端看到并作为后端响应客户端浏览器请求。
为了简单解释,只需将Node JS想象成PHP服务器,但是使用Javascript语言并且不需要apache服务器。当然,他们有不同的行为和许多不同的功能。您最好先阅读一些有关Node JS如何工作的教程,并在阅读高级教程之前尝试自己。