
何処もかしこもJavaScriptってくらい多くのサイトで使われていますね。JavaScriptはNetscape Communications社とSun Microsystems社が共同で開発したスクリプト言語です。よく言われるのが「JavaとJavaScriptは違う」という事です。仕様は似てますが、最大の違いはJavaScriptにはコンパイルの作業が必要ない点です。HTMLに直接書き込める手軽さから、サイトを動的に表現する代表的な技術になっています。HTML内なら<script>と</script>で囲まれた部分、外部ファイルならjsファイルがJavaScriptを指しています。それと特徴として挙げられる事は良くも悪くもパソコン内でその処理が行われる点、即ちマシンスペックを必要とする事です。処理能力が高まる反面、スペックが足りない場合パソコンが挙動不審な動きをしたり固まってしまう事もあります。それとサイト作成ではJavaScriptが動作していない環境のアクセスも考えられるので、その為の代替処置も必要とされます。
JavaScriptによる問題も基本はソースを覗く事です。HTMLに記述されているのであれ外部ファイルを使用されているのであれ、パソコン内で処理されていますから、その為の記述がなされているはずです。そこで一番よく用いられるのがこの「右クリック禁止」です。このページではJavaScriptによる右クリック禁止をしていますがソースは覗けたでしょうか? 「右クリックを」禁止しているのですから、それ以外の手段で閲覧すればこれを回避する事が出来ます。これは【 フレーム編 】で紹介した手段と同じです。IEならメニューバーの「表示」→「ソース」からソースを閲覧する事が可能です。
ではこのページとは別にもう一つ右クリック禁止を使った代表的な例を出します。次のリンク先のソースが覗けますか?
フルスクリーンでメニューバーを消していましたがこの場合もソースの覗き方は結局は同じです。メニューバーのある状態でアドレスバーに直接リンク先を指定してからソース表示の選択を出来るようにするか、【 ソース編 】で紹介したview-sourceを使うのも一つの手ですね。
説明上、内容に関わるスクリプトはあえてHTMLに直接記述していますが、外部のJSファイル(.js)を使用するパターンも多いです。もしこのファイルの開き方がわからない方は【 アドレス編 】の外部ファイルを参考にして下さい。
次のリンクは上の右クリック禁止のページを少し捻ったものです。ページ内のリンクをクリック出来ますか?
IEのみ全てのスクリプトが正常?に動作します。
ほとんど嫌がらせのようなスクリプトですが、もうこれは解き方わかりますよね。JavaScriptによってウィンドウの操作も可能になります。(時間が経つと自動的に閉じるようにしてますが、すぐ切りたかったらブラウザで窓を閉じるかタスクバーから直接閉じてくださいm(_ _)m)
これはウィンドウの出現位置を指定しました。答えは見たままです。何度かクリックして下さい。
ブラクラといわれる悪意あるページの多くはJavaScriptを使ってのものですね。その中でも多いのが、窓を連続して強制的に幾つも開く方法。9x系だと本当にすぐ固まっちゃいますね。ところでNT系と比較して9x系が固まりやすいのはカーネルの違いにあるらしいです。隠しページとは全く関係ありませんが興味あったら調べてみて下さい。
例えば一番よくあるパスワード制限法はこれです。まず下のリンク先へ飛んで下さい。
パスワードが正しい場合のみ入室が出来、それ以外の入力をした場合弾くようにしました。これもパスワードを知りたい場合はソースを見る事です。それともう一つの手段はJavaScriptが動作しないようにこれを切ってしまう事です。IEならメニューバーの「ツール」→「インターネットオプション」→「セキュリティ」→「レベルのカスタマイズ」→「スクリプト」→「アクティブスクリプト」の「無効にする」をチェックする事で切る事が出来ます(ただしIE6の段階ではローカル上のJavaScriptに対しては切れません)。この方法だとパスワード入力を無視してリンク先へ入室する事が出来ますね。
これもJavaScriptを使ったパスワード制限ですが、知識のない人には少し辛いと思います。こうなって来ると少し暗号地味てきますが、結局はソースを覗いて少し解析すれば解ける問題ともいえますね(ちなみにパスワードは「講座」です)。しかしJavaScriptを利用したパスワード制限は必ずそのパスワードがわかるというわけではありません。例えば次のリンク先も同じようにJavaScriptを使って移動時にパスワード制限を設けています。
今回は「パスワード=ファイル名」という形式でリンク先へ飛んでもらうものです。例えば仮にパスワードが「lecture」なら「lecture.htm」のアドレスに飛ぶという仕掛けです。これだとパスワード(ファイル名)自体わからないと先に進めない事になりますよね。こうなって来るとJavaScriptは単なる媒介手段になってきますが、これが正しいJavaScriptの使用法かも知れません。
JavaScriptは多く受けている技術ゆえに切ってしまうと利用できないサイトも多く現れます。ソースを見るまで「何のサイト?」「何も使えないよ?」という事はしばしばあります。必ずしも管理側が代替処置をしているとは限りませんから切ってる人は切ってるという自覚が必要ですね。それからついでに話せば……パソコンの環境によってはバイナリデータは当然の事、ソースさえ書き変わる事があります。だからどういったものか不確かな設定よりはスタンダードな環境で挑戦する方が無難です。セキュリティ観点とは逆のスタンスですね。
ここまで説明してきたものは、簡単に解析出来たりその意図が見えたりとソースを覗けば解けるでしょう。まるでJavaScriptはソースを見さえすれば良いような説明が多かったかも知れませんがそういう訳ではありません。ソースが見れる事と理解できる事は違います。上の例と同じような扱い方でもスクリプト次第でなかなか気付かない問題も作れますし、ソースを見ても更に解析困難なものも作れます。この当たりになると隠しページとしての謎解きよりプログラムの解析問題になって来る気がします。
これに関してはパスワードは秘密にしておきますね。と、こういった話とは違ってJavaScriptには「ウィンドウ操作」でも扱ったようなHTMLでは出来ない問題を作れる可能性があり、そこに謎解きとしての面白さがあるように思います。例えば次のサンプルがそれです。これは解析するより知恵を使って解くべき問題ですね。
[ パスワード制限4 ]は、この場で紹介するまで隠しページ探しの世界では一度も見たことがなかったんですが、去年一昨年と、これに頼るサイトが目立ち出しています。これは単なる一技術です。これに頼った隠し方は感心しません。解析されたらすぐ解けるようなものなら、他はあってないようなもの……幾つ問題を並べようと隠しページの観点では一問に過ぎません。やる人にとっては面倒なだけです。それに、ツールを使用しての暗号化は、ツール製作者の力によるものであって、それで隠すことは自身の問題になっていません。隠しページの世界では「解析禁止」も「ソース閲覧禁止」もありません。人道や法律に悖らない限り、持てる力をお互い(挑戦者と作成者)フルに活かして取り組むのが隠しページ流の謎解きだと思います。(後記 2005/01/08)
それでは例題です。当然JavaScriptが動作する環境で挑戦して下さい。
Copyright© 2003 seven_stars, All Rights Reserved.