「Javascriptの著作権侵害」について心配する必要がありますか?


11

クライアント側のJavascriptアプリを(サーバーと少し対話して)作成する場合、どうすればJavascriptファイルを自分のサイトにコピーできないようにできますか?私は、まったく必要がありますか?

回答:


34

気にする必要がありますか?番号。

どうして?本当にできることは何もないからです。

難読化が予想どおりに提案されている人もいます。これはJavaと.Netで機能しますが、Python、Javascript、Perlはすべてプレーンテキストなので、実際にできることはほとんどありません。サイトの価値は間違いなくサーバー側なので、Javascriptについて心配する必要はありません。


1
逆アセンブルされた(おそらく)難読化されたJavaから知っておくべきことを理解できれば、Javascriptを管理できると思います。「情報は自由になりたがっている」(引用はどこかで聞いた)。

2
Javascriptには固有の防御機能があります。サーバーサイドコードに関連付けられているため、アクセスできません。難読化はプラセボです。また、取得したエラーレポートの診断が難しくなります。誰かがあなたを

1
そして、問題のクールなトリックは何でしたか?

2
反対票は私を笑わせます。Javascriptは、サイトを強化するためのユーティリティとして最適に使用されます。保護する価値がある唯一のコードは、サイトと会社の内部構造に関する情報を公開するコードです。これらのいずれも、最初はクライアントスクリプトに属していません!

1
@ジム:私はそれを知りません。カウントは現在17のアップ投票、8のダウン投票であり、毎日の担当者の上限にあるため、この回答の担当者は-16です。

14

あなたができる最善の方法は、コードを難読化して、他の人がコードを変更するのに苦労するようにすることです。もちろん、元のコピーを保持します。

おまけとして、難読化されたコードはより小さく、したがってロードが高速である必要があります。


それはJavascriptの最小化と呼ばれますよね?
ジョナサンレフラー

4
実際に縮小
マットブリッグス

9

どうして心配するの?考えられる理由は2つあります。1)あなたは商用JavaScriptライブラリを書いています。解決策:別のビジネスプランを取得します。JavaScriptライブラリは無料です。おそらくあなたは小さなニッチな企業でお金を稼ぐことができますが、とにかく違法コピーされたコードを使用することはほとんどないでしょう。

2)競合他社がサイトをコピーするのではないかと心配しています。もしそうなら、あなたは常に彼らの一歩先を行くことを安心することができます。おそらく、彼らは独自のコードを書き、サイトの外観と動作をコピーしますが、アマゾンのワンクリックショッピングなどの愚かなソフトウェア特許を取得する以外は何もあなたを救うことはできません。

IOW、心配しないでください。著作権表示を使用して、ユーザーが自分のものを使用しているかどうかを伝えるように求めます。十分な人がそれを行う場合は、オタクの間で信用を得るために有用なライブラリを作成したという事実を使用してください。これはおそらく長期的には有益でしょう。


これはWebアプリケーションであり、ライブラリではありません:)。#2をありがとう。

6

いいえ。クライアント側のスクリプト言語を「保護」しようとしないでください。難読化は機能しません。縮小化には用途があります(ただし、著作権侵害対策はそれらの1つではありません

また、1日あたり数千のヒットが発生する場合を除き、コード縮小化しないことをお勧めます。リクエストごとに数キロバイト余分に顕著な違いがあります(そして、正しく使用しているすべての画像を圧縮して、数KBをはるかに超え、適切にキャッシュを設定するなど)。

Javascriptを縮小/難読化しても、人々は自分のサイトにそれを非常に簡単にコピーできます。変更するのはもう少し難しくなりますが、スクリプトの実行内容によっては重要ではない場合があります。たとえば、人々が言及したWMDエディターは、一般向けに縮小されて提供されます。

難読化と縮小化は似ている場合がありますが、コードを適切に難読化する場合、基本的に大きなセグメントを書き換えて理解しにくくする必要があります。これにより、コードが複雑になり、対処がはるかに難しくなります(あなた)、それでバグを導入します。あなたのJavascriptがバグになった場合、誰もそれを使用(または盗み)したくないので、それは著作権侵害を防ぎます..しかし、それは良くありません。

Javascriptの素晴らしい点の1つは、誰でも右クリック/表示ソースで、実際の動作中のコードを見ることでJavascriptを学習できることです。コードを見てコピーする人が心配な場合、web / Javascriptはありません。適切な言語..

すべての.jsファイルと<script>ブロックの先頭に、あなたの情報(名前、ウェブサイト)、および何らかのライセンスと共にコメントを入れることをお勧めします。コードが何であるかに応じて、「プロジェクトでこのコードの全部または一部を使用する場合は、お知らせください!」「このコードを他の目的に使用しないでください」よりもはるかに効果的です。


4

コードを難読化(または少なくとも最小化)して、これを防ぐことができます(ただし、時間がある人には止められません。たとえば、StackOverflowによるWMDエディターの難読化解除(これには十分な理由があります))。

実際、フロントエンドに配置するコードはすべて公開され、すべてのユーザーが表示/使用できるようになります。


WMDエディターは難読化されておらず、縮小されただけです。

JavaScriptを縮小すると、難読化の副次的な効果もあります... var va = fa(); 難読化もされています。
Unkwntech 09年

4

なぜそれを心配するのですか?スクリプトを盗む価値がある場合は、代わりにスクリプトをオープンソースにし、それらを修正するための助けを得ることができます。


それを超えて、あなたは潜在的に彼らのために信用と良いPRを得ます。これらのことを従来のビジネスの意味でうまく機能させることができない場合は、他の方法でそれらを機能させる方法を見てください。
ジョンホプキンス

4

常にソースコード形式で配信されるインタープリター言語なので、実際にはできません。海賊が十分に動機付けられている場合、難読化でさえあまり助けにはなりません。

(事例:StackOverflow WMD Editorは、厳密に言えば海賊行為と見なされる可能性がありますが、ジェフとダナは善意のみを持っていることを知っています)


4

いいえ。まったく心配する必要はありません。

ビジネスがJavaScriptコードの機密性に依存している場合、深刻な問題があります。

そうでなければ、気にしないでください。JavaScriptコードを最小化してページの読み込みを高速化する必要があるかもしれません。


3

私が使用GWT(Googleウェブツールキット)をコードはすべてJavaで書かれており、Java中心のツールを使用してデバッグおよびテストすることができますが、リリース用のJavaScriptに変換するWebアプリケーションを、書くため。

モードPRETTYまたはDETAILEDモードでない場合、GWTによって生成されたJavaScriptは非常に高度に最適化および難読化されているため、リバースエンジニアリングは非常に非実用的です。(従来のJavaScript難読化ツールはこれらの利点の一部を提供しますが、最適化が詳細なブランチプルーニングとコードパス分析を行うGWTの能力に依存する場合はそうではありません)。

一般的に、私は難読化で-1です-たとえば、合法的な顧客は、開発スキルとFireBugのコピーを持っている場合でも、問題を理解するのを助けることができないことを意味します。あなたは元の作者です。コードを他の誰よりもよく知っているので、安価な模造品を実行しようとしている人よりも競争上の優位性が得られます。さらに、そのような競合他社が実際に勝手に盗んだものから実際のお金を稼いでいる場合、訴訟でそのお金(または潜在的に3倍の金額)が奪われることになります。合法かつ真剣な競争はその道をたどりません、そしてなぜ他の種類を心配しますか?


2

Webアプリケーションには多くのJavascript(およびサーバー側)コードを使用し、Javascriptが空白や改行などを削除するように「難読化」することを選択しました-これは実際にはコードを保護しませんが、しかし、読むことと理解することを非常に難しくします。そして、おそらく他の人は関与する努力のために気にしません。

ただし、これを行う理由は、コードの一部を誰にもコピーさせたくないということではなく、コードを配信するパートナー/顧客が「ファイル」に直接変更を加えないようにすることです。次のアップデートがインストールされるときのトラブルを回避します)...

注:難読化には注意が必要な欠点が1つあります。そのスクリプトコードをデバッグする必要がある場合、難読化された情報を操作することはできないため、常に「読み取り可能な」ファイルを最初にサーバー。


2
エディターでJavascriptをフォーマットしたり、何らかの形式の「プリティプリンター」を使用したりするのは、たいしたことではありません。これらを減らすことは、帯域幅を減らす(つまり縮小する)のに役立ちますが、それだけです。

Javascriptファイルが大きい場合、多大な労力がかかります。また、「1行にすべてのコードが含まれる」タイプのファイルでは、「きれいなプリンター」はうまく機能しません(またはまったく機能しません)。

1

十分に優れたjavascriptが他の人によって取り上げられるという仮定に基づいて、単に電流で泳いでそれを最大限に活用してはどうでしょうか。

たとえば帰属を要求しながら使用を許可するライセンスを平手打ちします。本当に必要な場合は、Creative Commonsの亜種のような非営利条項があるかもしれません。


1

ほとんどのアプリケーションロジックはサーバー側である必要があります。Javascriptは、GUIのものとサーバーとの単純な対話のみを処理する必要があります。誰かがそれを盗むことを心配している十分なアプリケーションロジックがJavascriptコードに含まれている場合、おそらく何か間違ったことをしていることになります。


0

営業秘密がある場合は、コードの最も機密性の高い部分をActionScript(Flash)に移動できます。基本的にJavaScriptと同じ言語であり、トークン化された形式で保存されます。


0

断固としたハードコアハッカーがコードを盗むことを心配している場合は、申し訳ありませんが、あなたにできることは何もありません。しかし、カジュアルな泥棒には不便にする方法があります。比較的簡単な方法は、とを使用XMLHttpRequesteval()て一部のパーツをロードすることです。これは、JSONデータを取得し、それらを使用してページにデータを入力するものとして偽装(またはそれに含まれる)することができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.