更新履歴 [2019年10月21日]「CentOS 7 で SELinux を停止する」を追加。

トップページ > サイト作成 > CMS > Movable Type 7 で検索結果などのパスを変更する

Movable Type 7 で検索結果などのパスを変更する

Movable Type は検索フォームのパスや検索結果画面の URL が Movable Type をインストールしたディレクトリと同じことから Movable Type が使われていることが利用者から把握できます。 もし Movable Type に何らかの脆弱性が見つかった場合にはピンポイントで攻撃され、改ざん等の被害が出る可能性があるため、今回はサイト内検索のパスを変更します。

Movable Type に初期導入されているサイト内検索は mt-search.cgi というファイル名で実行されます。
サイト内検索の結果画面の URL を見ると次のようになっています。

http://IPアドレス/cgi-bin/mtのディレクトリ/mt-search.cgi?search=(略)

まずはこのファイル名を「ori-search.cgi」へ変更します。
手順としてはサーバの Movable Type をインストールしたディレクトリを開くと mt-search.cgi があるため、これを同階層にコピーしてファイル名を ori-search.cgi にします。
この時、パーミッションを 755 にしておきます。

次に設定ファイルの「mt-config.cgi」を変更します。
Movable Type は検索処理する際にデフォルトで「mt-search.cgi」を使うようになっています。
この利用先を設定ファイルで変更するため mt-search.cgi に次の一行を追加します。

SearchScript ori-search.cgi

この設定状態でサイト内検索を実行すると検索結果の画面は次の URL になります。

http://IPアドレス/cgi-bin/mtのディレクトリ/ori-search.cgi?search=(略)

Movable Type インストールしたディレクトリの名称を Movable Type と連想できないようにしている場合は上記のファイル名の変更だけでセキュリティが向上します。
しかしインストールしたディレクトリ(/cgi-bin 以下)の名称が"mt"や"movableytype"といったわかりやすい名称の場合は別ディレクトリを用意して動作に必要なファイルを設置します。
この時、***.cgi やディレクトリ「themes」など極力不要なものはコピーしないようにします。
動作に必要なファイルとディレクトリを「search」とし、コマンドでコピーする場合は次の通りです。

# cp -a ori-search.cgi /var/www/cgi-bin/search/
# cp -a lib/ /var/www/cgi-bin/search/
# cp -a extlib/ /var/www/cgi-bin/search/
# cp -a mt-config.cgi /var/www/cgi-bin/search/

ファイル類をコピーした後は次のようになります。

コピー後の構成

サイト内検索を実行するディレクトリのコピーが終われば、次は HTML 内の実行先の変更が必要です。
管理画面の「デザイン -> テンプレート -> ウィジェットテンプレート」にある「検索」を次のようにします。

<form method="get" id="search" action="<$mt:CGIPath$><$mt:SearchScript$>">
 ▼
<form method="get" id="search" action="/cgi-bin/search/<$mt:SearchScript$>">

実際にサイト内検索を実行すると検索結果画面の URL が変わっているのがわかります。

http://IPアドレス/cgi-bin/search/ori-search.cgi?search=(略)

HTML のソースを見ても検索フォームの実行パスが変更になっています。

検索実行パスの変更