回答:
気にする必要がありますか?番号。
どうして?本当にできることは何もないからです。
難読化が予想どおりに提案されている人もいます。これはJavaと.Netで機能しますが、Python、Javascript、Perlはすべてプレーンテキストなので、実際にできることはほとんどありません。サイトの価値は間違いなくサーバー側なので、Javascriptについて心配する必要はありません。
どうして心配するの?考えられる理由は2つあります。1)あなたは商用JavaScriptライブラリを書いています。解決策:別のビジネスプランを取得します。JavaScriptライブラリは無料です。おそらくあなたは小さなニッチな企業でお金を稼ぐことができますが、とにかく違法コピーされたコードを使用することはほとんどないでしょう。
2)競合他社がサイトをコピーするのではないかと心配しています。もしそうなら、あなたは常に彼らの一歩先を行くことを安心することができます。おそらく、彼らは独自のコードを書き、サイトの外観と動作をコピーしますが、アマゾンのワンクリックショッピングなどの愚かなソフトウェア特許を取得する以外は何もあなたを救うことはできません。
IOW、心配しないでください。著作権表示を使用して、ユーザーが自分のものを使用しているかどうかを伝えるように求めます。十分な人がそれを行う場合は、オタクの間で信用を得るために有用なライブラリを作成したという事実を使用してください。これはおそらく長期的には有益でしょう。
いいえ。クライアント側のスクリプト言語を「保護」しようとしないでください。難読化は機能しません。縮小化には用途があります(ただし、著作権侵害対策はそれらの1つではありません)
また、1日あたり数千のヒットが発生する場合を除き、コードを縮小化しないことをお勧めします。リクエストごとに数キロバイト余分に顕著な違いがあります(そして、正しく使用しているすべての画像を圧縮して、数KBをはるかに超え、適切にキャッシュを設定するなど)。
Javascriptを縮小/難読化しても、人々は自分のサイトにそれを非常に簡単にコピーできます。変更するのはもう少し難しくなりますが、スクリプトの実行内容によっては重要ではない場合があります。たとえば、人々が言及したWMDエディターは、一般向けに縮小されて提供されます。
難読化と縮小化は似ている場合がありますが、コードを適切に難読化する場合、基本的に大きなセグメントを書き換えて理解しにくくする必要があります。これにより、コードが複雑になり、対処がはるかに難しくなります(あなた)、それでバグを導入します。あなたのJavascriptがバグになった場合、誰もそれを使用(または盗み)したくないので、それは著作権侵害を防ぎます..しかし、それは良くありません。
Javascriptの素晴らしい点の1つは、誰でも右クリック/表示ソースで、実際の動作中のコードを見ることでJavascriptを学習できることです。コードを見てコピーする人が心配な場合、web / Javascriptはありません。適切な言語..
すべての.js
ファイルと<script>
ブロックの先頭に、あなたの情報(名前、ウェブサイト)、および何らかのライセンスと共にコメントを入れることをお勧めします。コードが何であるかに応じて、「プロジェクトでこのコードの全部または一部を使用する場合は、お知らせください!」「このコードを他の目的に使用しないでください」よりもはるかに効果的です。
コードを難読化(または少なくとも最小化)して、これを防ぐことができます(ただし、時間がある人には止められません。たとえば、StackOverflowによるWMDエディターの難読化解除(これには十分な理由があります))。
実際、フロントエンドに配置するコードはすべて公開され、すべてのユーザーが表示/使用できるようになります。
なぜそれを心配するのですか?スクリプトを盗む価値がある場合は、代わりにスクリプトをオープンソースにし、それらを修正するための助けを得ることができます。
常にソースコード形式で配信されるインタープリター言語なので、実際にはできません。海賊が十分に動機付けられている場合、難読化でさえあまり助けにはなりません。
(事例:StackOverflow WMD Editorは、厳密に言えば海賊行為と見なされる可能性がありますが、ジェフとダナは善意のみを持っていることを知っています)
私が使用GWT(Googleウェブツールキット)をコードはすべてJavaで書かれており、Java中心のツールを使用してデバッグおよびテストすることができますが、リリース用のJavaScriptに変換するWebアプリケーションを、書くため。
モードPRETTY
またはDETAILED
モードでない場合、GWTによって生成されたJavaScriptは非常に高度に最適化および難読化されているため、リバースエンジニアリングは非常に非実用的です。(従来のJavaScript難読化ツールはこれらの利点の一部を提供しますが、最適化が詳細なブランチプルーニングとコードパス分析を行うGWTの能力に依存する場合はそうではありません)。
一般的に、私は難読化で-1です-たとえば、合法的な顧客は、開発スキルとFireBugのコピーを持っている場合でも、問題を理解するのを助けることができないことを意味します。あなたは元の作者です。コードを他の誰よりもよく知っているので、安価な模造品を実行しようとしている人よりも競争上の優位性が得られます。さらに、そのような競合他社が実際に勝手に盗んだものから実際のお金を稼いでいる場合、訴訟でそのお金(または潜在的に3倍の金額)が奪われることになります。合法かつ真剣な競争はその道をたどりません、そしてなぜ他の種類を心配しますか?
Webアプリケーションには多くのJavascript(およびサーバー側)コードを使用し、Javascriptが空白や改行などを削除するように「難読化」することを選択しました-これは実際にはコードを保護しませんが、しかし、読むことと理解することを非常に難しくします。そして、おそらく他の人は関与する努力のために気にしません。
ただし、これを行う理由は、コードの一部を誰にもコピーさせたくないということではなく、コードを配信するパートナー/顧客が「ファイル」に直接変更を加えないようにすることです。次のアップデートがインストールされるときのトラブルを回避します)...
注:難読化には注意が必要な欠点が1つあります。そのスクリプトコードをデバッグする必要がある場合、難読化された情報を操作することはできないため、常に「読み取り可能な」ファイルを最初にサーバー。
営業秘密がある場合は、コードの最も機密性の高い部分をActionScript(Flash)に移動できます。基本的にJavaScriptと同じ言語であり、トークン化された形式で保存されます。
断固としたハードコアハッカーがコードを盗むことを心配している場合は、申し訳ありませんが、あなたにできることは何もありません。しかし、カジュアルな泥棒には不便にする方法があります。比較的簡単な方法は、とを使用XMLHttpRequest
しeval()
て一部のパーツをロードすることです。これは、JSONデータを取得し、それらを使用してページにデータを入力するものとして偽装(またはそれに含まれる)することができます。