14

最初に、私はnwsnapshotを見ました。それは助けにならない。ノードウェブキットデスクトップアプリケーションでソースコードを確保する

node-webkitを使用してデスクトップアプリケーションとして在庫管理システムを構築しています。プロジェクトは、compoundjs(mvc javascript library)を使用しています。あなたは明確なフォルダ構造(あなたはmvcを知っています)とそれらの中の複数のjavascriptファイルを持っています。

問題はnwsnapshotはアプリケーションに1つのスナップショットファイルのみを持たせることができますが、アプリケーションのロジックはさまざまなjavascriptファイルのすべてのフォルダに広がっています。

どのように私はクライアントに出荷する前に私のソースコードを保護するのですか?または他の回避策またはスマートな方法(はい、私は難読化について知っています)。

答えて

20

あなたは、任意のJSが追加package.json

nwsnapshot --extra-code application.js application.bin 

ファイル指定せずにアプリにロードされるバイナリにJavaScriptコードをコンパイルするnwsnapshotと呼ばれるnodewebkitコマンドを使用することができ、この:

snapshot: 'application.bin' 
+3

これは本当に受け入れられる答えでなければなりません。 nwsnapshotはjsソースをバイトコードにコンパイルし、それをノードプロセスに挿入します。受け入れられた答えは、かなり簡単に克服することができるコードマイナーとobfuscaterを使用します。 –

+0

他のリソースをフォントファイルなどのバイナリに変換することはできますか? –

+0

アップデート:[nwjc](https://github.com/nwjs/nw.js/wiki/Protect-JavaScript-source-code-with-v8-snapshot)を使用してください。 nwsnapshotと比較してはるかに小さいバイナリファイルを作成する – sunnyvilles

0

JSファイルをビルドプロセスで1つにマージしてコンパイルすることが考えられます。

+0

任意の参照または例またはツール>? – sunnyvilles

+1

http://requirejs.org/docs/optimization.html – pfried

+0

まだ期待していたものではなく、_requirejs_で十分です。ありがとう@pfried。 – sunnyvilles

2

本当に「安全」とは何ですか?

Google Closure Compilerを使用すると、JavaScriptコードをかなり難読化して(パフォーマンスを向上させることができます)、難読化することができます。

JavaScriptを暗号化/復号化するための既製のソリューションは認識していません。正直なところ、その必要性について疑問があります。

ユーザーにバイナリを配布するだけのコンパイルされた言語を扱うため、ソースコードを表示できないようにする必要があると考えるユーザーもいます。事実、リバースエンジニアリングは、バイナリコードが決してそれほど難しいとは思わないので、財政的インセンティブがあれば、出荷ソースコードと従来のバイナリの出荷との間に実質的な違いはありません。

一部の言語では、MicrosoftのSLPSなど、展開されたアセットの正規の暗号化が提供されています。この市場はマイクロソフトがパートナーに与えたほど小さかった(私の見解)。真実は、ほとんどの顧客がソースコードの取得に興味がないことです。彼らは彼らの仕事に乗っている間、効率的な方法でコードをサービスしサポートするあなたの能力にはるかに興味があります。

関連する問題