2016-06-15 4 views
1

私は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で使用するのは安全ですか?

このような質問で申し訳ありません。

+1

mysql.createConnection(require( './ config.json')) '... – Qix

+1

これは本当にサーバー側で使用することを意図しています.Node.jsはあなたが慣れ親しんだようにサーバーアプリケーションを実行していますPHP。これは、クライアントブラウザでの使用を目的としたものではありません。 –

+0

マイケルが正しいです、そのファイルはあなたのサーバー上に存在し、実行されます。公開されるべきではありません。 –

答えて

1

ノードJSもサーバー側です。ノードJSはJavaScriptを使用してコーディングするため、クライアントブラウザに公開されるわけではありません。それはちょうどサーバ側で見られ、クライアントのブラウザ要求に応答するバックエンドとして立つ。

簡単な説明のために、ノードJSをPHPサーバーとして想像してみてください.JavaScript言語であり、Apacheサーバーは必要ありません。もちろん、彼らは異なる行動と多くの異なる機能を持っています。先進的なチュートリアルを読む前に、まずノードJSがどのように機能するかについてのチュートリアルを読んで、あなた自身を試してみてください。

+0

大丈夫、今私はノードのアイデアを得た。JSファイルをブラウザ経由でサーバーに呼び出す方法はありますか? –

+0

私の経験では、単に 'server.js'のようなファイルを作ってください。そして、node/JS:node server.jsから実行するだけでJSファイルが実行されます。次に、クライアントブラウザのポートからポートを開くことができます。あなたの 'server.js'設定がポート80でリッスンしている場合、そのIPで簡単に開くことができます。 'http:// 192.168.0.1'ですが、別のポートを使用している場合は、ブラウザのアドレスにポートを定義する必要があります。 「http://192.168.0.1:3000」 – Bayu

+0

ありがとう、私はnode.jsのためのよいdocuを見つけなければならないと思います。 –

関連する問題