NodeJSで簡単なサイトを作りたいのですが。たとえば、2つのファイル(app.js-メインアプリケーションファイル)とrouter、js(urlファイル)があります。知りたいのですが、誰かがmydomain.com/router.jsにアクセスして、アプリケーションのソースコードを取得できるかどうかを知りたいのですが。たとえば、PHPでは、サーバーがこのPHPファイルの処理結果を提供するだけで、ファイル自体は提供しないため、phpにアクセスすることはできません。では、nodejs-appをパブリックアクセスで非表示にするにはどうすればよいですか?ありがとう!
2 に答える
これは、Node.jsをどのように使用しているか、およびその前のWebサーバーに何を使用しているかによって異なります。CGIまたはApacheのモジュールとして実行されるPHPとは異なり、ノードおよびノードアプリケーション自体はサーバーです。ノードのソースディレクトリが公開されているWebサーバーがある場合、質問で指定したURLによって、ソースコードが提供される可能性が高くなります。Apacheを使用してノードにプロキシしている場合でも、通常、出力フィルターは含まれていません。代わりに、リクエストはバックエンドノードサーバーに渡され、そこで解釈されます。
Node.jsのすべてのファイルが、Apacheなどの別のWebサーバーによって提供されるパスに含まれないようにします。そうすれば、ソースが偶然に提供される危険性はほとんどありません。
私のノードプログラムとファイルは、ノード内の各アプリケーションのサブフォルダーとともに/ var/nodejsに配置されます。もちろん、デフォルトでは、指示がない限り、Nodeは何も提供しません。
Apache構成のルートで、すべてのフォルダーが保護されていることを確認します。これにより、すべてのApacheサイトで使用する/ var / wwwフォルダーの下でも、任意のフォルダー構造での提供を明示的に有効にする必要があります。
したがって、フォルダを分離しておく限り、NodeとApacheのデフォルト設定でかなり安全です。また、Nodeが誤ってソースコードを提供することはありません。ファイルをテキストとして読み取り、httpストリームに書き込むNodeサーバーを設定する必要があります。