AdminCGIPath による mt.cgi の利用方法

AdminCGIPath による mt.cgi の利用方法

Posted at May 14,2005 3:00 AM
Tag:[AdminCGIPath, Customize, MovableType, mt.cfg, Security]

先日、Movable Type ニュースにあった【重要】 第三者による不正アクセスを許す危険性の対策についてを受けて、盗聴によるパスワードやCookieの漏洩からの不正アクセスを防止する(1)、つまり AdminCGIPath の設定による mt.cgi の隠蔽を実際にやってみました。

上記のページに簡単な変更例は書かれていますが全体の作業の流れがいまひとつ分からず、とりあえず下記の手順を実施してみました。

  • 新しいディレクトリの作成
  • 新しいディレクトリに mt.cgi を移動
  • mt.cfg に AdminCGIPath を追加(注:CGIPath は削除せずそのまま)

そのあと、新しいディレクトリ名を含めて mt.cgi を指定、つまり管理ページのURLをブラウザに設定して起動してみたところ、

Got an error: Can't locate MT/App/CMS.pm in @INC (@INC contains: …/extlib …/lib … .) at …/mt.cgi line 21.

というエラーが発生しました。mt.cgi の21行目は

require MT::App::CMS;

という、モジュール取得処理ですが、取得に失敗しています。これは mt.cgi を起動した時に決定する lib や extlib のパスを、mt.cgi と同じパスに設定しているためです。具体的には、次のリストは mt.cgi にあるパス決定処理ですが、

    :
my($MT_DIR);
BEGIN {
    if ($0 =~ m!(.*[/\\])!) {
        $MT_DIR = $1;
    } else {
        $MT_DIR = './';
    }
    unshift @INC, $MT_DIR . 'lib';
    unshift @INC, $MT_DIR . 'extlib';
}
    :

と、lib および extlib のパスとなる $MT_DIR を $0(Perl の実行スクリプト名)とのパターンマッチで求めているので、赤色で示すパスは結果的に起動した mt.cgi と同じパスになります。パターンにマッチしない場合もカレントディレクトリを設定しています。

つまり mt.cgi の移動に伴って他のディレクトリやファイルもコピーする必要があります。コメントやトラックバック等のCGIは従来のパスに必要なので、端的に言うと新しく作ったディレクトリにも以前と同じデータ構成が必要ということになります。全てコピーすれば間違いないと思いますが、とりあえず

extlib/
lib/
plugins/
tmpl/
mt.cfg
mt.cgi
mt-db-pass.cgi(MySQL利用時)

を配置したところ、管理画面表示や各メニューの表示、およびエントリー関連の作業は正常に動作しました。images/ や mt.js および style.css は StaticWebPath との関連で、場合によってコピーが必要かもしれません。
2005.05.14追記:The blog of H.Fujimoto「第三者による不正アクセスの危険性」への対策より、ダイナミックパブリッシングを行っている場合は php ディレクトリのコピーも必要です。

最初のエラーでつまづいている方が少なくないのではないかと思い、急いでエントリーしました。ご参考になれば幸いです。なお全ての動作について確認できておりませんので予めご了承ください(確認でき次第追記します)。
2005.05.14追記:ほぼ全ての動作について確認しました。

2005.05.15 追記
AdminCGIPath による mt.cgi の利用方法(その2)もエントリーしました。

関連記事
トラックバックURL


トラックバック

「第三者による不正アクセスの危険性」への対策 from The blog of H.Fujimoto
5月12日に、Movable Typeに「第三者による不正アクセスの危険性」の脆弱性があるということが発表されました。 元記事はこちら 上記のエントリーには、脆... [続きを読む]

Tracked on May 14, 2005 3:41 PM

Movable Typeの脆弱性 発覚! from 新妻blog(もう新妻じゃないけど)
とうとう出ちゃいましたよ:14: 【重要】 第三者による不正アクセスを許す危険性... [続きを読む]

Tracked on May 14, 2005 7:10 PM

そう、本当にわかりにくい>シックスアパート from 試しに私が書いてみる
AdminCGIPath による mt.cgi の利用方法: 小粋空間 ホントに公式は不親切。 わかるか、あんな書き方で。 こちらのblogの方に助けていた... [続きを読む]

Tracked on May 20, 2005 2:14 AM

[Movable Type] 3.15の脆弱性に対する対応 from スログ(スロット・ブログ)
公式はチンプンカンプンだったんで、 トラックバックを一つずつ見ていったら丁寧なサイトにドンピシャ! *** [:ピピピ:]ばなな 一、ロリポ... [続きを読む]

Tracked on June 11, 2005 9:52 PM

個別エントリに同一カテゴリのリスト表示 from TOM'S HOME
個別エントリーアーカイブに、 同一カテゴリのエントリリストを表示させました。 小... [続きを読む]

Tracked on February 8, 2006 8:02 PM
コメント

同じエラーが発生していて、困っていたところ、当エントリーを発見しました。

かなり大掛かりな作業が必要みたいなので、大変そうですね。

Cookieの履歴を残さないように努めて、6月の3.16-jaリリースまで待ちたいと思います。

[1] Posted by ninoshin : May 15, 2005 8:58 AM

>ninoshinさん
こんばんは。
コメントありがとうございました。
後ほど別の設定方法をエントリーする予定ですのでご参考になれば幸いです。

[2] Posted by yujiro : May 15, 2005 10:52 PM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)