Javascript

2005年12月18日 はてなブックマーク livedoorクリップ

Javascriptの隠蔽

Javascriptの圧縮と難読化が長くなったので、こちらでJavascriptの隠蔽について書きます。結論をいうと、Javascriptの完全な隠蔽は不可能です。が、気軽に見られない程度なら方法はあります。私はそこまでやるほどの大層なプログラムではないのでやってません。それにどの道(一部ですが)ソースは公開する予定なので・・・。

では、具体的な方法について。

1.右クリックを禁止してソースを見れなくする。
2.javacriptを外部ファイル化する。
3.外部ファイルをキャッシュに残さないようにする。
4.JavascriptをPHP等のCGIで書く。
5.直に外部ファイルにアクセスできないようにする。

1つ目。通常HPを見る側にとって結構不快な事が多いのでオススメできません。その上回避方法も広く知れ渡っていますのでやらない方が無難かと思います。

2つ目。別に隠蔽と言えるかどうかも分かりませんが、基本です。これをすることで、HTMLソースには表示されないのでちらっとソースを見られることはありません(URLが表示されるので直でアクセスされれば意味はありません)。

3つ目。私も詳しくないんで何ですが、PHP等を用いるとキャッシュを残さないようにできるようです(PHPマニュアル参照)。

4つ目。意外に知らない人が多いようですが、javascriptは何も".js"である必要はありません。

<script src="http://www.example.com/test.php" type="text/javascript" >

上記のように".php"等の別ファイルでも可能です。つまり動的に変更されるjavascriptにできるということです。

5つ目。4つ目の応用。HP自体をセッション管理することによって、特定のページからしか(CGIで作成した)javascriptファイルを呼び出せなくすることが可能になります。つまり、javascriptファイルを直にダウンロードしようとしても、空あるいはフェイクのjavascriptがダウンロードされるようにできます。


1は論外として、2~5を組み合わせると普通にHPを見に来た人には気づかれず、そこそこ隠蔽できるかと思います。が、致命的な欠陥。IEで「名前を付けて保存」すると、外部ファイルも含めて全部保存されちゃったりします(意味ないじゃん!?)。


[結論]

そこまでして隠蔽しなくてもいいんじゃね?って事ですかね(笑
キャッシュに残さなかったりするとページの更新の度に外部ファイルを読み直す必要があります。HPをわざわざ見に来てくれたユーザーの事を配慮すると、「そこまでする必要はない。」というのが私の結論。逆にjavascriptの圧縮は正解だと思います。


投稿者 shiz : 2005年12月18日 22:29

トラックバック

このエントリーのトラックバックURL:
http://mt.amonya.com/mt-tb.cgi/4

※トラックバックのリンク確認後に掲載させて頂きます。
(当エントリー又は当サイトへのリンクがない場合は掲載しません)

コメント
コメントしてください




保存しますか?