TopMovable Typeカスタマイズ検索 > 2014年3月
2014年3月19日

Movable Type検索でURL改ざんによるブログ検索をできないようにする方法

March 19,2014 1:23 AM
Tag:[, , ]
Permalink

Movable Type検索でURL改ざんによるブログ検索をできないようにする方法を紹介します。

1.問題点

Movable Typeの検索機能では、作成したすべてのウェブサイトやブログの検索が可能になります。

特定のウェブサイトやブログを検索対象にしたい場合、検索フォームの「IncludeBlogs」に対象にしたいブログIDを設定します。

たとえば「クラシックブログ」テーマの検索ウィジェットテンプレート(抜粋)には赤色で示す行が書かれていて、これで検索対象のブログを指定します。

<div class="widget-search widget">
  <h3 class="widget-header">検索</h3>
  <div class="widget-content">
    <form method="get" action="<$mt:CGIPath$><$mt:SearchScript$>">
      <input type="text" id="search" class="ti" name="search" value="<$mt:SearchString$>" />
<mt:If name="search_results">
      <input type="hidden" name="IncludeBlogs" value="<$mt:SearchIncludeBlogs$>" />
<mt:Else>
      <input type="hidden" name="IncludeBlogs" value="<$mt:BlogID$>" />
</mt:If>
      <input type="hidden" name="limit" value="<$mt:SearchMaxResults$>" />
      <input type="submit" accesskey="4" value="検索" />
    </form>
  </div>
</div>

このテンプレートで実行されたときのURLを以下のようにIncludeBlogsにはブログID「1」が設定されているものとします。

http://user-domain/mt/mt-search.cgi?search=hoge&IncludeBlogs=1&limit=20

これとは別にプライベートブログなど、検索対象外にしたいブログについては、環境変数ExcludeBlogsをmt-config.cgiに設定します。

たとえばブログID「2」「3」を検索対象外にする場合、次の1行をmt-config.cgiに追加しておきます。

ExcludeBlogs 2,3

ただし、このExcludeBlogsの設定だけでは、ブログID「2」「3」が検索結果に含まれる可能性があります。

具体的には、前述の検索用URLのクエリーIncludeBlogsにブログID「2」「3」を手動で加えて、

http://user-domain/mt/mt-search.cgi?search=hoge&IncludeBlogs=1,2,3&limit=20

と改ざんすれば、ブログID「2」「3」の検索結果も出力されてしまいます。

理由は、ExcludeBlogsに設定した値はIncludeBlogsで上書きが可能なためです。

公式ドキュメントにもそのような記載があります。

ExcludeBlogs

2.Movable Typeの検索でブログを追加できないようにする

検索対象外のブログをURLのクエリーに追加しても検索結果に表示されないようにするには、環境変数「SearchNoOverride」をmt-config.cgiに追加します。

具体的には、ExcludeBlogsに加えて次のように設定します。

ExcludeBlogs 2,3
SearchNoOverride IncludeBlogs

これで先のURLを実行されても、ブログID「2」「3」の結果が表示されることはありません。

3.SearchNoOverrideについて

環境変数「SearchNoOverride」は、URLのクエリーによる上書きを禁止するためのものです。

2項の設定は、「IncludeBlogs」についてURLのクエリーによる上書き禁止を意味します。

1項の例ではテンプレートのフォームとして「IncludeBlogs」が存在しますが、

SearchNoOverrideには、カンマ区切りで複数のパラメータを指定することができます。

SearchNoOverride IncludeBlogs,ExcludeBlogs

4.その他

公式ドキュメントを除き、SearchNoOverrideの具体的な使い方についてはネットに情報が存在していません。

動作確認は行ってますが使用方法に誤りがありましたらご容赦ください。

Comments [0] | Trackbacks [0]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3