Macintosh Developer Online (MDOnline)


2000年9月29日発行号 - WebObjectsのセキュリティホール



8月の最初にfatbrain.comに注文した、Inside Cocoaなどのドキュメントが昨日やっと到着しました。しおりやカタログが入っているのは、Amazon.comとまあ同じとしても、書籍に貼付けるシールが一緒に入っていて、そこにこの本の持ち主はだれそれで、電話やemailはこちら、ということが書けるようなものも同梱されていました。もちろん、fatbrain.comと★マークがどっかり書いてありますけど。名前を書くのも悪くはないと思うのですが、6冊注文したのにこのシールは1つしか入っていません…。好感が持てたのは、納品書に相当する文書がもちろんコンピュータで印刷はされていたのですが、1冊1冊に青ペンでチェックが入っていて、サインがされていることです。きちんと確認したことが分かります。だけど、また、どっさり書籍が増えてしまいました。初期のInside Macintoshの日本語版も棚の奥にはまだあります。これ、けっこう半端な容積ではありません。だけど、黒い背表紙のNew Inside Macintosh(もはやNewじゃないですけどね)はもっと激しく場所を取っています。さすがに、手近な場所に置いてあるのはごく一部になりましたけど。それから、技術評論社のデベロッパーズジャーナルとかAppleのdevelopとか、なんだかんだで、1つの本棚はマック関連の書籍や雑誌でいっぱいになるほどです。それでも、押し入れにしまい込んだものもあるわけで、大量のドキュメントが手元にまだまだあります。私は比較的ものは捨てる方ではあるのですけど、Appleのドキュメント類はなかなか捨てる気になれず置いたままになっています。どうせ今回買ったものも、開ける前にADCのサイトで検索してそっちで見ることになるのかも知れませんけど、発売されると反射的に買ってしまうのが昔の癖がそのまま残っているというところでしょうか。今回買った書籍はこれからシュリンクを破ります。また場所を取るなと思いながらも、シュリンクを破るってのはやっぱりわくわくします。
(新居雅行 msyk@mdonline.jp


WebObjectsのセキュリティホールが発覚、開発者による対応策も公開

WebObjectsでセキュリティホールが発見されたが、対策は利用者側で公開された。見つかったセキュリティホールは、http-refererを利用するもので、WebObjectsに限らず、Webアプリケーションサーバでのセキュリティホールとして話題になっていたものだ。http-referer利用することで、あるページを訪れた時、その前に参照していたページを、移動先のWebサーバで知ることができる。WebObjectsで作られたページを参照している場合、URLにセッション管理情報が付加されるので、そこから移動した先のサーバにセッション情報が伝わってしまうと言うものである。セッションとは、WebObjectsと利用者のつながりのことで、セッション情報をもとに、あるユーザがアプリケーションに接続していることを管理する。ページ間を移動してもセッションは連続したものとして扱われることで、フローが絡む複雑な処理を構築できるのである。これはアプリケーションサーバでの必須となった機能である。セッションの寿命は数分というレベルではあるが、その間にはある利用者のセッションの一連のアクセスとしてWebObjectsによるWebアプリケーションにアクセスできてしまうというものだ。テクニカル・ピットの倉橋浩一氏によると、実際にこの方法で第三者からセッションに割り込むということが可能であることが確認されたということだ。確実にパスワードが盗まれるといったセキュリティ的なものではないものの、データの改ざんなどは比較的発生されやすいセキュリティホールと考えられる。
しかしながら、さっそく、テクニカル・ピットの倉橋浩一氏によって対策が講じられた。セッションの管理において、IPアドレスあるいは接続に利用してきたブラウザを覚えておき、異なったセッションを排除するというものだ。Sessionクラスにプログラムを追加すればよく、Javaのプログラムが公開されている。IPアドレスでの判別を行えばほぼセキュリティ的な問題はクリアされると思われるが、Webサーバを経由しない接続を行うことを考えれば、それは不可能ということで、とりあえずの対策として公開されている。
このセキュリティホールについてはアップルの対応についても取りざたされている。セキュリティ関連の窓口がないなど、必要な措置を迅速に実行する体制が見えないのである。自社製品のセキュリティ情報をメールニュースで送る体制などを整えている会社もある一方、アップルの現状は「アップルはセキュリティ対策ができていない」という印象を専門家に強く与えることは免れないかもしれない。今回の件は倉橋氏によってある程度の解決を見ているが、逆に言えばアップルは対処できなかったということでもある。インターネットの世界でのセキュリティの重要性は言うまでもないが、それに取り組む体制を利用者が見えるところで動かす必要性があると言える。

関連リンク:テクニカル・ピット: WebObjectsのページ
カテゴリ:サーバ, WebObjects


PowerPCネイティブなスクリプト機能追加を作成する方法

AppleScriptの機能拡張をPowerPCネイティブコードで作成する機能は、Mac OS 8.6で導入された。従来のメカニズムでは、osaxリソースによるものだったが、これは68kコードであり、重たい処理には不向きだった。また、何よりも、Mac OS Xでの稼動ができないスクリプト機能追加ファイルである。Technoteとして公開されている「Native Scripting Additions」では、PowerPCネイティブのスクリプト機能追加を作成する方法がまとめられている。また、日本語の文書も公開されている。要は、CFMベースのコードとして作ると言うことだけが書かれているだけであり、むしろ、Code Fragment Managerについて知らない場合には、そちらの学習を先に済ませないと理解はできないだろう。
◇Technote 1164: Native Scripting Additions(日本語)
 http://developer.apple.com/ja/technotes/tn1164.html

関連リンク:Technote 1164: Native Scripting Additions
カテゴリ:Technote-J, Technote, AppleScript


Mac OS XでバージョンアップしたJavaからネイティブコードを呼び出すJDirect3

Technoteに、JDirect3に関する情報が掲載されている。Mac OSのJava実行環境では、C言語などで作られたライブラリを呼び出す独自の機能としてJDirectが装備されている。MRJ 2.2ではJDirect2が搭載されているが、Mac OS XではJDirect3にバージョンアップされた。JDirect3はJNI(Java Native Interface)との親和性を高めるために仕様変更されているため、JDirect2向けに作成されたソースは、JDirect3では利用できなくなっている。JDirect2向けに作成されたソースの変更方法や、JDirect2およびJDirect3のいずれでも使えるようにする方法等が掲載されている。JDirectを使ったソースコードをすでに作成している場合には、要チェックなドキュメントだ。

関連リンク:Technote 2002: Compatibility between JDirect 2 and JDirect 3
カテゴリ:Technote, Java, Mac OS X


Mac OS Xでコントロールバーを実現するアプリケーションがオープンソースで登場

Mac OS Xでコントロールバーを実現するソフトがリリースされた。OpenStrip Ver.0.2がそれで、Public Beta版ですでに利用できる状態になっている。Mac OSにあったコントロールバーはMac OS X Public Beta版では見られなくなっているものの、手軽に使えるツールだけに存続を望む声も出ている。Joseph J. Stroutは、Mac OS X上で稼動するアプリケーションとして、コントローバーを実現するものを開発した。バーのデザインもAquaライクなものとなっている。以下のページに動作イメージがあるが、実際ダウンロードしてすぐに使えることは確認した。これをオープンソースでフリーで配付している。
ちなみに、ダウンロードした結果は、Mac OS X PBに付属のStuffIt Expanderで解凍する。そしてOpenStripというフォルダができるので、その中にあるOutput Folderの「OpenStrip」をダブルクリックすれば良い。モジュールは同じフォルダにあるものを自動的にロードするようだ。
ただし、モジュールについては、Mac OSで使っていたものは基本的にはそのまま利用することはできない。従来のモジュールは68kベースのコードリソースであるが、OpenStripのモジュールはCarbonで稼動する共有ライブラリである必要があるとのことだ。そのため、従来のモジュールについてはコンパイルのし直しが必要になる。しかしながら、モジュール部分の呼び出し部分については非常にシンプルなものであるため、それほどの変更は必要ないだろう。ただし、ソースの中でToolboxを呼び出す部分があれば、そこでのCarbon化は必要になる。
なお、OpenStripはCarbon対応アプリケーションであるため、Mac OS 9においても利用可能だが、CarbonLib 1.1を必要とする。将来的にはモジュールの共用なども視野に入れることができるかもしれないが、現状ではMac OS 9で動かすことができるのはデベロッパだけということだ。
OpenStripでは今のところは時計を出すくらいしか実用的なモジュールはない。しかしながら、OpenStrip自体あるいはそのモジュールの作例も含めて、CodeWarriorのプログラムやプロジェクトなどが付属している。モジュールは1つのエントリポイントを用意し、引数に合わせて分岐をすればいいだけなので、プログラミングの難しさはそれほどもない。ビルドに関してはサンプルをコピーすればいいので、これも問題はないだろう。Mac OS Xでコントロールバーを欲しいという需要はそれなりに高いため、OpenStripはおそらく注目を集めるだろう。だが、モジュールは当然必要になる。今なら、モジュールを作るネタはいろいろあるし、既存ネタで作ることにも意味はある。商品にするのは難しいかもしれないが、Mac OS Xのコミュニティに食い込むには、モジュール作家になるというのは1つの選択肢ではないだろうか。

関連リンク:OpenStrip
カテゴリ:オープンソース, ユーザインタフェース, Mac OS X


Mac OS X Public Betaでの登録アカウントのパスワードを変更する方法

Tech Info Libraryに、Mac OS X Public Betaでのパスワードの変更方法が説明されている。管理権限のあるアカウントでログインを行う(インストーラで定義したアカウントには管理権限がある)。そして、ApplicationsフォルダのUtilitiesフォルダにあるMultiple Usersというアプリケーションを用いて、登録されているいずれのアカウントのパスワードを変更することができる。アプリケーションでは、ロックを解除するなど操作が必要になる。

関連リンク:Mac OS X Public Beta: How to Change a User’s Password
カテゴリ:Knowledge Base(旧TIL), Mac OS X


Mac OS X Public BetaではPCカードは使えない。PowerBookユーザは要注意

Tech Info Libraryに公開された文書によると、Mac OS X Public Betaは、PCカードについては一切サポートしていない。PCカードを使うには、Mac OS 9で起動する必要がある。将来のバージョンのMac OS XではPCカードをサポートする予定だ。つまり、Public BetaではPCカードを一切使えないということになるわけだ。

関連リンク:Mac OS X Public Beta: PC Cards Not Recognized
カテゴリ:Knowledge Base(旧TIL), Mac OS X, PowerBook


Mac OS XのClassic環境でインターネットアプリケーションがエラーを出す場合の処置

Mac OS X Public Betaで、Classic環境で稼動するTCP/IP利用アプリケーションにおいて、接続エラーやDNS関連のエラーが出た場合の対処方法が、Tech Info Libraryに掲載されている。Classic環境のシステムフォルダにあるTCP/IP Preferences(日本語システムでは「TCP/IP 初期設定」)をいったん削除し、System PreferencesアプリケーションのNetworkの設定で、DNSを再度選択し直すという方法が記載されている。

関連リンク:Mac OS X Public Beta: Internet Applications Do Not Work in the Classic Environment
カテゴリ:Knowledge Base(旧TIL), ネットワーク, Mac OS X


QuickTimeのプラグインの1つをフリーで配付

Buena Softwareは、QuickTimeのエフェクト追加のプラグインをフリーで配付している。フリー配付されたのは「Diffusion」というもので、画像をややざらついた感じにするようなものだ。同者では、Effects Packとして10のQuickTimeプラグインを含むパッケージを3種類リリースしている。いずれも$30である。他にもAltiVecを使ったプラグインなども製品としてリリースしている。今回のDiffucionプラグインの無償提供は自社製品への注目を集めることが目的のようだ。

関連リンク:Diffusion - Free
カテゴリ:ユーティリティ, QuickTime