5-2.ソースコードは見られてしまう

JavaScriptのコードを完全に見られなくする方法は無い

samplejpg

ゲームを作成して色々な人に遊んで貰いたい、と、思う人の中にも、ソースコードは見られたく無い、という人は多いかもしれません。

ソースコードを他人に見られ、流用されてしまうと、折角苦労してコードを書いた作成者としてのアドバンテージはほぼ無くなります。 また、バグを発見し、修正を要求してくるアクセス者が現れ、対応に苦労させられるかもしれません。

厳密には、JavaScriptのソースコードを見られなくする方法はありません。 このため、見られると困るコードを使ったプログラムは公開すべきではありません。 しかし、上記したような問題を懸念しているのであれば、問題を軽減する方法は幾つかあります。

著作権表示とライセンスを明記しておく

ソースコードが見れるようになっていたしても、そのコードを見た他人がそのコードを勝手に流用して良い事にはなりません。 ソースコードには著作権というものがあり、それを作成した「あなた」の許可が無い限り、法的には、そのコードを見た他人は個人利用の範囲外でのコードの利用は許されません。 つまり、あなたが許可しない限り、他人はそのソースコードを流用して作成したプログラムを公開する事は出来ないのです。

もっとも、これはあくまでも建前の話であって、実際には、「あなた」のコードを流用した他人が流用したプログラムを公開する事もあるかもしれません。 そして、そのコードの中にある流用部分があなたのコードである事を証明するのは難しいため、その他人を法的に訴える事も普通は出来ないでしょう。

しかし、世の中には法律を守る人も一定数はいます。このため、著作権表示とライセンスを明記しておけば、見られたコードが盗用されるリスクは、ある程度、軽減される筈です。

不具合報告は不要の旨を明記しておく

サイト管理者は色々なプログラムを公開しているので実際に経験しているのですが、ネットには色々な人がいて、公開プログラムの連絡先に対して「不具合を見つけてやったから感謝しろ」といったスタンスで不具合報告をしてくる人もいたりします。 そして、「報告してやったんだから早急に対処しろ」、といった文面のメールを送りつけてくる人もいます。

初めてゲームを作成し、公開する人の中には、それらのメールの要求に押されて、やりたくも無い不具合修正をやり続ける羽目になる人も出てくるかもしれません。

しかし、公開したプログラムに不具合があっても、公開者が不具合を修正する義務はありません。 バグのあるプログラムを公開したままにしておく事は、道義上問題がある、という人もいるかもしれませんが、それはバグの内容によります。

Windows用のネイティブプログラムの場合、ユーザーのHDDにある全てのファイルを削除するような事もできてしまいます。 このため、バグがあって、このような処理が行われてしまう可能性が見つかった場合には、道義上、不具合は修正すべきです。

しかし、JavaScriptプログラムの場合、どれだけバグがあっても、そういった致命的な問題が発生する事はありません。 このため、道義上からも、公開者が不具合の修正をしなければならなくなるケースは無い筈です。

このため、面倒なので不具合が見つかっても修正する気が無い、という場合には、連絡先として表記するメールアドレスの近くに不具合報告は不要の旨を明記しておくと良いかもしれません。 逆に、不具合報告を受けてプログラムを改善していきたいと思っている場合には、不具合報告歓迎、とでも書いておけば良いでしょう。

コードを難読化する

JavaScriptを使ったページを公開する場合、手元にあるソースコードを使ったページをそのまま公開するのではなく、そのページを難読化した上で公開する事もできます。

難読化、というのは文字通り、読むのを難しくする、という事です。 具体的には、全てのコメント行を取り去り、改行やタブやスペースも文法上必要な最小限の数に減らし、さらに、文字コードに簡単なエンコードを施し、それを読み込んでデコードするルーチンを追加する事で初めて動作するようにします。

難読化されたコードは、ソースを表示できたとしても、何をやっているのか全く判りません。 このため、ソースを他人に見られたくない場合には、難読化はある程度の効果があります。

ただし、コードの内容を調べたい、と、思った場合には、その方法はあります。 このため、難読化を行ったとしても、コードの内容を完全に知られなくする事はできません。 また、ページを難読化すると、何か良からぬ事をやっているのではないか? という疑念を持たれる可能性もあります。

このため、難読化する場合には、コメントを取り去る、改行/タブを最低限にする、程度にしておくのが無難かもしれません。 この程度の難読化であれば、コードを読もうと努力すればそのままでも読めますので、要らぬ疑念を持たれる可能性は減り、かつ、コードを盗用しようとする人には、それなりの労力を強いる事が出来ます。