「HTMLソースや、JavaScriptのソースを閲覧者に見せたくない」という要望がよくあります。これに対する答はひとつ、「公開しない」しかありません。つまり、ブラウザでも見えない状態にしておけば、ソースを見られる心配はありません。ブラウザで見える状態にするということは、何らかの方法でHTMLやJavaScriptのソースを閲覧者側のブラウザが解釈できるということですから、ブラウザの代わりにダウンロードツールなどのちょっとしたツールを使えば、ソースは見られてしまうことになります。
ただ、ソースを見るのを難しくする、見るまでの手順を面倒にする、あまり詳しくない人に見る方法を分かり難くするなどの方法はいくつかあります。
ページをフレームに分割し、ひとつ目のフレームをサイズ0、ふたつ目のフレームを100%の大きさにします。[表示]-[ソース]などで表示しても、<FRAMESET>などのフレーム文書のソースが見えるだけになります。しかし、フレームをマウスで右クリック(Windowsの場合)して[ソースの表示]とかやると簡単に見えてしまうので、あまり強固とは言えません。→ 右クリックを禁止するには?を追記しました。(2000.1.9)
HTML文書が完成したら、簡単なツールを使って、改行コードをすべて取り去ってしまいます。例えば、perlが使える環境であれば、while (<>) { s/[\r\n]+$//; print; }という簡単なプログラム(xx.pl)を作成して、コマンドラインからperl xx.pl xx.html > new.htmlとすれば、改行を取り去ることができます。[表示]-[ソース]でソースを見られても、すべての内容が1行に連なってしまうので、読めないというよりも、読む気力を起こさせなくします。
本文中に<SCRIPT>〜</SCRIPT>で直接記述してしまうと、[表示]-[ソース]ですぐに見えてしまいますが、<SCRIPT>タグのSRC属性で外部ファイルに記述しておくと、少しは見られ難くなります。HTML本文には<SCRIPT SRC="xxx.js"></SCRIPT>と記述しておき、xxx.jsファイルの中でJavaScriptを記述(<SCRIPT>タグと、<!--、// -->の記述は不要)しておけば、[表示]-[ソース]で見られることはありません。しかし、[ファイル]-[開く]などからxxx.jsファイルへのURLを直接指定された場合は、xxx.jsをダウンロードできたりしまうので、完全ではありません。
上記の応用で、すべてのHTML記述を、JavaScriptのdocument.write()で書いてしまえば、[表示]-[ソース]でHTMLソースを見られることもなくなります。ずいぶん面倒な方法ではありますが・・・
上記の応用で、HTML記述をBASE64などのアルゴリズムを用いてエンコードし、これをJavaScriptでデコードしながら表示するというアイデアを教えていただきました。具体的なソースコードは暇ができたら・・・(2000.9.3追記)
HTMLソースやJavaScriptソースの先頭に、著作権の明示や、「苦労して開発したものなので、流用する場合はメールで許可を得てね」という但し書きを書いておく方も居られるようです。世の中悪人ばかりじゃないですから、これでも少しは「無断流用」を防げるかもしれませんね。
その他の方法を知ってる方が居られましたら、情報、お待ちしてます。現在のところ、以下のような提案をいただいています。
- 超単純だけど、漢字コードをEUCとかにしておくと、Windowsなどで見た際に文字化けして、見る気をなくすかも・・・(2000.3.20)
- フレームを使う技で、フレームを2重、3重にしていくといいかも・・・(2000.3.23)