AdminCGIPath による mt.cgi の利用方法
先日、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)もエントリーしました。
- Movable Type 8リリース
- MovableType 7のコンテンツデータのデータ識別ラベルを自動入力する方法
- 「MovableTypeを導入したときに参考になる記事まとめ」で紹介されました
- Movable Typeの新規記事投稿で公開日に現在時刻を設定する方法
- 上位100ブログの利用ブログツール1位はWordPressではなくMovable Type
- Movable Typeの旧バージョンを入手する方法
- 第2回「MTCafe Tokyo」開催のお知らせ
- MTCafe Tokyoに参加しました
- 「スマートフォンオプション for Movable Type」の発売開始
- MTCafe開催のお知らせ
- Movable Type 10周年とMovable Typeを知らない方へ
- MovableType.jpに寄稿しました
- 「Movable Type 5.1 プロの現場の仕事術」Amazonで予約開始
- Movable Type 5を始める前に設定しておきたい10の項目
- 書籍「Movable Type 5.1プロの現場の仕事術」をMovable Type 5.1購入時にもれなくプレゼント
≫ 「第三者による不正アクセスの危険性」への対策 from The blog of H.Fujimoto
5月12日に、Movable Typeに「第三者による不正アクセスの危険性」の脆弱性があるということが発表されました。 元記事はこちら 上記のエントリーには、脆... [続きを読む]
≫ Movable Typeの脆弱性 発覚! from 新妻blog(もう新妻じゃないけど)
とうとう出ちゃいましたよ:14: 【重要】 第三者による不正アクセスを許す危険性... [続きを読む]
≫ そう、本当にわかりにくい>シックスアパート from 試しに私が書いてみる
AdminCGIPath による mt.cgi の利用方法: 小粋空間
ホントに公式は不親切。
わかるか、あんな書き方で。
こちらのblogの方に助けていた... [続きを読む]
≫ [Movable Type] 3.15の脆弱性に対する対応 from スログ(スロット・ブログ)
公式はチンプンカンプンだったんで、
トラックバックを一つずつ見ていったら丁寧なサイトにドンピシャ!
***
[:ピピピ:]ばなな
一、ロリポ... [続きを読む]
≫ 個別エントリに同一カテゴリのリスト表示 from TOM'S HOME
個別エントリーアーカイブに、 同一カテゴリのエントリリストを表示させました。 小... [続きを読む]
同じエラーが発生していて、困っていたところ、当エントリーを発見しました。
かなり大掛かりな作業が必要みたいなので、大変そうですね。
Cookieの履歴を残さないように努めて、6月の3.16-jaリリースまで待ちたいと思います。
>ninoshinさん
こんばんは。
コメントありがとうございました。
後ほど別の設定方法をエントリーする予定ですのでご参考になれば幸いです。