もしや三菱電機ISのシステムはフリーソフトを使っていたりはしないかと、「WwKensaku.aspx」でググってみたところ(図1)、そこに現れたのは、 Anonymous FTPサイト専門の検索サイトだった*1。そこでさらに「WwKensaku.aspx」で検索してみると、なんとそこに現れたリンク先は ftp://210.230.245.201/ (図2)、このリンクをクリックすると図3の画面が現れた。
210.230.245.201 をDNSで逆引きすると sasaguri1.uxt.cknet.co.jp となる。http://sasaguri1.uxt.cknet.co.jp/ にアクセスしてみると、以下の図4のようになった。
ドメイン名が変だが、これは篠栗町立図書館(福岡県)の正規サイトのようだ。
Anonymous FTPサイトを見て廻ったところ、MELIL/CSのプログラム(VBスクリプト)の一部等が公開された状態になっていた。念のため、ftpコマンドでアクセスしてみたところ、「Anonymous access allowed」と表示され、パスワードなしに接続することができた(図5)。
公開された状態のMELIL/CSのプログラムのうち、特に重要なものは図6のディレクトリにあった。
ディレクトリを隈無く見て廻ると、「Global.asax」が置かれているように、これは新型の方(ASP.NET版)であるが、旧型(ASP版)の残骸のようなもの*2が随所にあり、旧型のものと思われる「Global.asa」が置かれていた。
その中身は図7のものであった。
Sub Session_OnStart
(中略)
'エラー対策?
On Error Resume Next
'図書館用データベース
Set Session("OraDatabase") = OraSession.DbOpenDatabase(HostName ,LoginPasswd ,Clng(3))
End Sub
Sub Session_OnEnd
Set Session("OraDyna_Book") = Nothing
Set Session("OraDatabase") = Nothing
Set Session("OraSQLStmt") = Nothing
End Sub
まさに、Twitter界隈で皆が予想していたとおりだった。
つまり、7月14日の﹁サーバ管理者日誌﹂で﹁念力デバッグ﹂として、現象から推測されていたことがほぼ図星で、7月22日の﹁その後の念力デバッグ﹂で補正されたものがズバリであった。そして、この推測を基に再現実験が行われた﹁ぐて〜blog﹂の7月24日のエントリ﹁岡崎市立図書館の件のサーバ側挙動の擬似環境下再現実験︵その2︶﹂で作成された﹁Global.asa﹂は、
Sub Session_OnStart
Set Session("OraDatabase") = Application("OraSession").DbOpenDatabase("libradb","scott/tiger",clng(3))
End Sub
Sub Session_OnEnd
Set Session("OraDatabase") = Nothing
End Sub
というもので、さらに、中川氏が警察の取り調べで見せてもらったというサーバ側アクセスログにあったエラーメッセージの記憶を基に、そのようなエラーメッセージが出るよう、﹁On Error Resume Next﹂のエラー処理を追加したのが、7月29日の﹁ASP実験、Session_OnStartのオブジェクト生成失敗を無視する処理﹂のときの﹁Global.asa﹂であり、まさにその推測は完全に当たっていたということになる。*3
このコードの場合、DB接続はアクセス元のブラウザ専用として確保︵ASPセッションに紐付け︶され、ASPセッションがタイムアウトするまでの間︵7月の時点で岡崎市立中央図書館では実測で620秒くらいだった︶、閉じられることなく︵使いもしないのに︶占有されてしまう。その間に新しい閲覧者︵ブラウザが︶接続してくると、次々新しいDB接続が確保され、その最大数に達すると、それ以上のアクセスを受付けなくなってしまう。
旧型MELIL/CSの設定ファイルもあった︵図8︶。
「データベースのアクセス方式を指定する」とあり、「0:都度コネクト」と「1:プーリング機能」が選択できるようになっている。
このDB接続の実装は、「Database.vb」にあった(図11)。
えーと、朝日新聞とかでネタになってるようです。
三菱電機インフォメーションシステムズ(MDIS)の図書館システムMELIL/CS