2016-07-29 1 views
2

これは疑問に思えるかもしれませんが、JavaScriptファイルにSQLクエリを書く理由はわかりません。 JavaScriptファイルをクライアントが見ることができないのですか?あなたのようなものがある場合:Node.jsプログラム内のJavaScriptのクエリーをセキュリティ上の問題で実行していますか?

var mysql  = require('mysql'); 
var connection = mysql.createConnection({ 
host  : 'localhost', 
user  : 'foo', 
password : 'bar', 
database : 'db' 
}); 

connection.connect(); 

connection.query('SELECT * from table', function(err, rows, fields) { 
if (!err) 
console.log('The query returned ' + rows); 
else 
console.log('An error occurred.'); 
}); 

// rest of js code 

これはセキュリティ上の問題ではありませんか?誰かが私を教育してください。

+0

サービスしていない場合、その内容はどのように表示されますか? – zerkms

+0

Javascriptは単なる言語であり、コードがnode.jsのサーバー上で実行されている場合、クライアントによって決して表示されません。 – dtkaias

+0

@zerkms正しい。しかし、私が考えるJavaScriptの知識がある人の多くは、現代のJavaScriptは純粋にサーバーベースのプロセスであり、ブラウザだけではないということを理解していると思います。 – JakeGould

答えて

4

<script>タグのように、ブラウザのJavaScriptとして何らかの形で意図的にクライアントに送信されている場合は、それが絶対に見えます。それは変更することもできます。

Node.jsプロセス内で実行されているNode.jsコードの場合、「Webマウント」の場所にアプリケーションをデプロイするような全く無謀な作業をしない限り、クライアントがこのコードを取得する方法はありません。誰かがクリックして調べることができる、またはindex.jsまたはapp.jsのような名前が推測される場所に、あなたのWebサーバーによって誤って公開されたすべてのファイルのディレクトリインデックスがあります。

JavaScriptがブラウザでの使用を目的としているわけではなく、にはブラウザでは全く実行されないがあります。

+3

「JavaScriptがブラウザで使用することを意図したものではなく、まったくブラウザで実行しなければならないことを意味するものではない」と述べています。 JavaScript;もうブラウザベースの言語ではありません。 – JakeGould

+0

@tadmanしたがって、自分のプロジェクトルートにnode.jsファイルがすべて入っているノードディレクトリがあるとします。クライアントは、どのように内部に含まれる内容をピークにすることができませんか?これはhtaccessか何かによって行われますか? –

+0

ノードプロジェクトをノードソースコードに設定された仮想ホストとして意図的に設定していないか、または何らかの理由でノードアプリケーションが自分自身で提供されるようになっていない場合は、これは問題。どのように*クライアントがこれらのソースファイルを入手できるかは、あなたが求めているべき質問です。 – tadman

関連する問題