知らないうちにWeb上のスクリプティング技術というのはどんどん高度になっていくのですが、たまに追いかけていかないと、セキュリティホールとかを作ってしまうので調べたりしています。 そういう意味ではちょっとまえから気になっていた「Ajax」という技術があります。これは簡単に言えばXML(というかXMLHttpRequestという関数だけ使ってる、XMLは必須ではない)を応用して、ブラウザに読まれたスクリプトコードからHTTPリクエストを発してその結果を取得できるという技術です。 ※具体的に「Ajax」という名のソフトウェアがあるのではなくて複数の技術の組み合わせの呼称です。 代表的なAjaxではGoogleMapsがあげられます。 これは高速なレスポンスのためにマウスドラッグの位置にあわせてデータの先読みを行っています。 同じくGoogleであまり知られていない例では「Googleサジェスト」。 http://www.google.co.jp/webhp?complete=1&hl=ja キーを打つたびに通信して検索結果をリストするという恐ろしいものです(通信量が)。すごいことに日本語IMEの入力にも対応しています。 Ajaxが通信しているときは、タスクバーの通信ステータス表示アイコンが点灯しますのでわかりますね。 そんなわけで「Ajaxってのは、早い、通信する」というぐらいの認識でした。例えばレスポンスのいいチャットシステムなどは簡単に作れるわけです。 代わりに常時接続ブロードバンドじゃない人は大変ですが。 面白いものではこんなものまで。 http://chasen.org/~taku/software/ajax/hwr/ ブラウザ上で書いた文字をサーバ側で認識して入力できます。 いわゆる手書き認識です。レスポンス良いです。 かくいうmixiも10月中旬の大規模メンテナンスで、こっそりAjaxを実装していました。 http://mixi.jp/new_friend_diary.pl このページ(マイミク新着日記リスト)で表示される日記アイコンをクリックするとその人の日記でリストを取得しています(取得されるURLにAjaxとしっかり書いてあったりする)。
で、何がいいたいかというと、Ajax技術というのは確かにユーザには利便性があるのですが、知らないうちに仕込まれていると、セキュリティ情報、たとえばmixiのログインパスワードとか、Cookieとかチケットとかを瞬時に知らないサイトに送れてしまうということです。 べつにmixiに限ったことじゃないんですが、こういうメガサイトになると、沢山の人が便利なツールを作るためにmixiのHTMLをハッキングしています。 Googleで探して出てくるような、趣味感覚でやってる人はいいんですが、この手の技術の怖いところはあっという間に書いたコードが広がってしまう点でもあります。 便利なツールが出てくるのはうれしいけど、いちいち挙動まで調べるのはめんどいなあ。まあ自己proxyとか入れるとすぐわかるんだけど。 関連リンク prototype.js http://prototype.conio.net/ このようにオブジェクト指向実装がきっちりされてくると「スクリプトだから」と馬鹿に出来ないことがいろいろ起きる。