Webブラウザー上でプログラムを実行するJavaScriptは、さまざまなWebサイトで利用されています。そして、基本的にJavaScriptのプログラムを訪問者に隠すことはできません。各Webブラウザーには「ソースを表示」というメニューがあり、どんなWebサイトでもプログラムも見ることができます。これは、プログラマーからするとうれしいことです。達人の作ったJavaScriptを手軽に見ることができるということですから。

 しかし、Webサイトの管理者からすると、どんなJavaScriptが動いているのかは隠しておきたいものかもしれません。JavaScriptがどのような仕組みで動いているのかを解き明かされては困るということも多々あります。仕組みを解明され、不正なJavaScriptを動かされて、Webサイトが攻撃されるということもあり得ます。

 例えば、スコアを競うJavaScriptで作られたゲームを考えてみましょう。当然、ゲーム終了後にスコアを暗号化してWebサーバーに送信しますが、どのようにして暗号化するのかは秘密にしておきたいことでしょう。

 そのため、JavaScriptを「難読化」してユーザーからコードを隠そうという試みは、ずっと行われてきました。難読化というのは、プログラムの意味を変えないものの、故意と読みにくく置換することを言います。しかし、残念ながら、JavaScriptのプログラムを完全に隠蔽するということはできません。

 それでも、一般ユーザーに読めない程度に難読化するだけで十分であるという場合も少なくありません。難読化したプログラムを解読するには、時間がかかるからです。もし、定期的に難読化の手法を変えていくなら、解読は困難になり、不正をされる確率は低くなるでしょう。

 それで、これから、数回に分けて、JavaScriptの難読化のテクニックを紹介していきます。

この先は会員の登録が必要です。有料会員(月額プラン)は申し込み初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら