goo キーワードアシスト - goo 検索サービス
最近は、Webページ上でHTMLでは出来ないようなインタラクティブなサービスを実現するために、いわゆるJavaScriptを使用する事が多いようです。
しかし、JavaScriptはクライアント側で実行されるスクリプトですので、ソースがそのままクライアントのブラウザにロードされます。
例えば、gooがベータ版としてはじめた上記サービスですが、これは、ユーザーが、検索ワードを入力したあとにスペースを入れると、続けて絞込みに使えそうなワードの候補をプルダウンで表示してくれるものです。
さて、このページのソースを見ると、外部JavaScriptファイルを読み込んでいることがわかります。
で、その外部ファイルのURLへアクセスしてみると、プログラムが丸見えになります。(あえてURLは書きませんが)
MSのWebメッセンジャーなんかも同様にソースプログラムを見ることができるんですが、改行が削除されていて、しかも、変数は、上からa b c ... aa ab acみたいに変換されていて、解析に非常に手間がかかります。(googleの似たようなサービスも同様でした)
gooの場合ですが、見てみると、非常に読みやすいソースファイルになっています。というか、プログラマが書いたそのままで公開しているようです。
内容を解析してみると、仕組みは単純で、入力ワードを別途用意された推測ワードを返すCGIへ渡し、XML形式で返されるワードを羅列するだけのようです。
そのCGI(ここでは、「JavaScirpt」というワードを渡してます):
http://search.goo.ne.jp/addwords.jsp?MT=JavaScript
このようなサービスであれば、解析されても大して問題にはなりませんが、例えば、暗号化ルーチンをJavaScriptで記述してあったりすると、非常に危険なことになります。
暗号化の仕組みをばらしているようなものですから、解読されるのもあっという間でしょう。
では、JavaScriptのソースを隠す方法はあるのでしょうか?
答えは、NOです。ありません。
読みにくいようにエンコードする方法とか、MSやgoogleのように読みにくくする方法はありますが、完全に隠す方法がありません。
つまり、解読されることを前提に公開するしか方法は無いと言うことです。
ソースを転用とかすれば明確に犯罪になりますが、読むだけなら自由であるのが現状です。