スポンサーサイト

■ スポンサー広告 Posted by ひぐま (Higmmer) on -------- at --:--:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

開発後記 ~聖司との戦いの記録~ 第二章

■ 雑記 Posted by ひぐま (Higmmer) on 2007-02-15 at 23:16:39

◆共有テーマ: 雑記 [日記]

終わり無き脆弱性との戦い

バージョンアップした本家にも当然のようにHTMLフィルタが実装されていたが、それは正規表現で実装されたHTMLパーサをベースとした簡易的なもので、しかも私の方式(ホワイトリスト)とは異なりブラックリスト方式を採用していた。それは確かに高速に動作するが、これでは将来新しく判明するであろう脆弱性に対応しきれない。かといって本家の実装を捨ててしまうのは作者に失礼だ。そう考えた私は両者の方式をそれぞれ「高速」「詳細」と名付けて選択可能にし、ユーザーの判断に委ねることにした。今にして思えば真にユーザーのことを思うならこの段階で後者に絞っておくべきだった。そうすれば少なくともあの事件は回避することができたはずだ(いずれは同じ命運を辿ることになっていただろうが)。

かくして昨年10月5日に満を持してリリースした聖司(改)だったが、新たな脆弱性が見つかったのはそのわずか4時間後のことだった(それはHTMLフィルタに無関係な部分で発覚した)。まだリリース直後だったので影響は少ないと判断し、配布を一時中止して修復作業に取り掛かった(公開再開に漕ぎ着けたのはその更に4時間後のことだった)。この時と同じ判断が何故あの時できなかったのかと今でも悔やまれる。

私がこれらの作業を行っている間に本家から早くも修正版がリリースされていたのだが、それはマイナーバグフィックスに止まっていたため暫く様子を見ることにした。ところがその2日後には一転、聖司(改)の新バージョンをリリースすることになった。あるユーザーの方から未修正の脆弱性の存在を指摘されたからである。「高速」「詳細」の両方のフィルタにそれぞれ性質の異なる抜け穴が隠れていたのだ。幸いにしてそれらはほんの数行のコード修正で対策できたが、それ以降、私はどこかに未知の脆弱性が残っているのではないかという疑心暗鬼の怨霊に取り憑かれることになる。

それからの1週間は新しい攻撃方法を試しては脆弱性の有無を検証するという日々に明け暮れた。見つかった穴を塞いでも塞いでも、思いもよらぬ方法でまた別の穴が見つかる。結局、その1週間に修正版を合計3回リリースしなければならなかった。

どこまでやっても完璧に対策するのは不可能なのではないか――そう思い始めていた。

ひとつの完成、そして終わりの始まり

脆弱性対策が一段落した10月中旬頃から私はマニュアルの整備に取りかかった。と同時に新たな野望を実現するための前準備としてユーザースクリプト機能を実装した。新たな野望――それは聖司(改)で既読・未読管理を可能にすることだった。これが実現すればユーザビリティが飛躍的に向上し、Google Readerを上回る快適なフィードリーディング環境を構築することができる。そう確信していた。Javascriptのセキュリティ上の制約から一度は開発を断念しかけたが、とあるユーザーの方の声が私を後押ししてくれた。検討の末Flashアプリケーションを用いてローカルストレージにアクセスするという手法を思いつき、セキュリティ上の制約を克服。開発は急ピッチで進んだ(といっても私にとってActionScriptに触るのもそれが初めてだったので当然一筋縄ではいかなかったわけだが)。

当初思い描いていた機能の実装が終わる頃には世は秋も深まる10月の終わりに近づいていた。その新しく開発したパートナーを私はリードマンと名付けた。

聖司(改)とリードマン。この組み合わせは私に至福のフィードライフをもたらした。動作速度、操作性、情報の一覧性及び更新の即時性――そのいずれにおいてもこれに勝るフィードリーダーは他にないように思えた(フィードが保存されないためナレッジベースとしての用途には全く適さないが、それは私が必要としている機能ではなかった)。まさに自己満足の極致である。

そんな自分が欲しいと思う機能をひたすら追加していっただけの産物であったにも関わらず、有り難いことに使って下さる方が徐々に増えつつあるのを感じていた。それに伴い機能追加の要望、環境依存の不具合などの報告も届くようになり、それらの声を反映しながら聖司(改)とリードマンに少しずつ改良を加えた。その後一旦は開発終了宣言したものの、とある配信会社を経由して流れてくるフィードが日に日に広告エントリで埋め尽くされていくことに耐えられなくなり、11月14日には広告ブロック機能を追加。更に18日に本家に脆弱性対策を含む更新が入ったのを受けて11月20日に聖司(改)をバージョンアップした。そしてそれを契機に暫く彼らの開発作業から離れることにした。私に束の間の平穏な日々が戻った。

実はこの時に修正された脆弱性こそ、この後に訪れる事件を予言する上で重要なヒントであったということにもう少し早く気づいていれば――またもや私は危機回避のチャンスを逸したのだった。

(つづく)

トラックバック

この記事について書く(FC2ブログユーザー)
※言及リンクの無いトラックバックは無効です

PageTop▲

コメント

PageTop▲

コメントの投稿

 
 
 
 
 
 (後で編集・削除したいなら必須)
 
  

PageTop▲

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。