次のサーバー側アプリケーションとしてnode.jsを検討しています。ただし、クライアントがアプリケーションのコードを調べられるようにしたくはありません。node.jsで記述されたアプリケーションをコンパイルされた形式でデプロイできますか?はいの場合、どのように?
4 に答える
たぶん、すべてのコードを難読化することができます...これはコンパイルのようなものではないことを私は知っていますが、少なくとも、99%のクライアントがコードを見るのを避けます:D
別のトピックは次のとおりです。JavaScriptを難読化(保護)するにはどうすればよいですか?
幸運を
ただし、クライアントがアプリケーションのコードを調べられるようにしたくはありません。
クライアントにコードを送信する場合、クライアントは「アプリケーションのコードを調べる」ことができます。技術的には、「コードを実行する」プロセスは「アプリケーションのコードを調べる」ことです。
コードの完全にコンパイルされたバージョンがあると、間違いなく「より安全」に感じることができますが、それでも、使用可能な形式のコードのコピーがあります。彼らはまだリバースエンジニアリングや他のことをすることができます。これは本当にライセンスに帰着します。
これが関連する答えです。彼の引用は次のとおりです。
ライセンスを書いて、弁護士に違反者を追いかけてもらいましょう
それ以外の場合は、自分でホストし、パブリックアクセスを許可する必要があります。
あらゆる形式の難読化、縮小化、コンパイルは、「コードを盗む」ためのスピードバンプになります。単に法的手段をとる方がはるかに良いでしょう。
私はこれが可能だとは思わない。つまり、技術的には、すべてをネイティブC ++拡張機能として記述できると思いますが、それではノードを使用する目的が損なわれます。
前述のように、nod実行可能ファイルは基本的にJavaScriptコードをオンザフライでコンパイルするため、Node.jsには真のコンパイルはありません。
多くの開発者は、コメントや空白などを削除する「縮小」するだけのGoogleのクロージャーコンパイラを使用しています。「最適化」は、JavaScriptコードをより効率的なJavaScriptに変換します。ただし、結果のコードは通常、解析可能なjavascriptコードです(読みにくいですが)。詳細については、この関連ストリームを確認してください:closure-compilerとNode.jsをうまく再生する
役立つ可能性のあるいくつかのオプション:
- 「独自の」ビジネスロジック用のカスタムモジュールを開発し、安全なサーバーでホストします
- 「独自の」ビジネスロジックを、Node.jsで外部プロセスとして呼び出されるJavaクラスまたは実行可能ファイルにラップします。
- 「独自の」ビジネスロジックを、Node.jsによって呼び出される別のアプリケーションサーバーで利用可能なコンパイル済みWebサービスとしてコーディングします。
アプリケーションのどの部分を「プロプライエタリ」と見なすかを定義するのはあなた次第ですが、原則として、HTMLおよび関連するJavaScript(ブラウザに送信される)を「プロプライエタリ」として分類しません。私のアドバイスはここで賢明であることです。
最後に、役立つかもしれない興味深いアプローチを持つ次のストリームを見つけましたが、それはかなり高度で、かなりバグがある可能性があります:NodeJSアプリケーションの安全な配布
お役に立てば幸いです...