私はMySQLへのデータ処理を行うバックエンドとして角度アプリとphpに取り組んでいます。最近私はJSを通してMySQLに通信するNodejsのためのnode-mysqlプラグインを見つけました。Nodeと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のようなサーバー側の言語とは異なり、ここではPHPと一緒にparamsを呼び出します。
このドライバをNodejsで使用するのは安全ですか?
このような質問で申し訳ありません。
mysql.createConnection(require( './ config.json')) '... – Qix
これは本当にサーバー側で使用することを意図しています.Node.jsはあなたが慣れ親しんだようにサーバーアプリケーションを実行していますPHP。これは、クライアントブラウザでの使用を目的としたものではありません。 –
マイケルが正しいです、そのファイルはあなたのサーバー上に存在し、実行されます。公開されるべきではありません。 –