先日、
MovableType の管理画面からログを確認したところ、
"online poker"や"play roulette online"、"free blackjack"
などと云った
検索クエリが 100 件近く記録されていました。
MovableType の
検索 CGI は
データベース上の記事を全走査するため、
このような
検索が頻繁に行われることは
サーバ負荷を考えると不安ではあります。
そこで、特定のリモートホストからのアクセスや、特定の単語を含む
検索が行われた場合、
データベースへのアクセスが行われる前に
検索動作を停止するように改造してみました。
これで
スパムでお馴染の単語でログが埋め尽くされることもなくなります。
このプログラムは GPL ライセンス(GNU General Public License;
GNU 一般公衆利用許諾契約書
原文(英語))
の条件の下で自由に配布・使用することができます。
動作の概要
MTSearchAntiSpam は
MovableType 標準の
検索機能が呼び出される前処理として実行されます。
検索機能については何ら変更しません。
- リモートホストがブラックリストにあった場合、そこで検索処理を中断します
- 検索語句の何れかが NG ワードリストに一致した場合、そこで検索処理を中断します
例えば、
"casino" という NG ワードを検索
しようとした場合、
MovableType 標準の
検索機能が呼び出される前に処理を中断し、
エラー画面を表示するようになります。
そのためログに気持ち悪い
検索クエリが残りません。
導入方法
Step 1. SearchAntiSpam.pm の導入
ダウンロードしたアーカイブを展開し、エディタで開きます。
ファイルの先頭付近に以下のような行があるので、
環境に合わせてブラックリストファイルと NG ワードファイルへのパスを設定します。
指定されたパスにファイルが見つからない場合、そのファイルは無視されますので、
何れかの機能を使用しない場合はこのままでも構いません。
修正が終わったら、このファイルを (MTのインストールパス)/lib/MT/App にコピーします。
元からある Search.pm は削除しないでください。
Step 2-1. ブラックリスト(禁止 IP リスト)の作成
Step 1.で
IPBListPath に指定したパスに、
以下のような形式のテキストファイルを作成します。
一行につき禁止したい IP アドレスを一つずつ記述します。
Step 2-2. NG ワードリストの作成
Step 1.で
NGWordsListPath に指定したパスに、
以下のような形式のテキストファイルを作成します。
一行につき NG ワードを一つずつ記述します。
Step 3. mt-search.cgi の修正
MovableType の
検索 CGI が
SearchAntiSpam.pm を使うよう修正します。
MT のインストールパスにある
mt-search.cgi をエディタで開き、以下のように修正します。
全ての
MT::App::Search という文字列を
MT::App::SearchAntiSpam に置換します。
エディタの機能を使えば一発ですね(・∀・)
いろいろ
この記事を読んだ人はこんな記事も読んでいます
MovableType, NovableType, JovableType, KovableType, MIvableType, M9vableType, M0vableType, MPvableType, MLvableType, MKvableType, MoCableType, MoFableType, MoGableType, MoBableType, MovQbleType, MovWbleType, MovSbleType, MovZbleType, MovaVleType, MovaGleType, MovaHleType, MovaNleType, MovabKeType, MovabOeType, MovabPeType, MovablWType, Movabl3Type, MovablRType, MovablDType, MovablSType, MovableRype, Movable5ype, Movable6ype, MovableYype, MovableGype, MovableFype, MovableTTpe, MovableT6pe, MovableT7pe, MovableTUpe, MovableTHpe, MovableTGpe, MovableTyOe, MovableTy0e, MovableTy-e, MovableTyLe, MovableTypW, MovableTyp3, MovableTypR, MovableTypD, MovableTypS
スパム
Hack, Gack, Yack, Uack, Jack, Nack, Back, HQck, HWck, HSck, HZck, HaXk, HaDk, HaFk, HaVk, HacJ, HacI, HacO, HacL, HacM
寄せられたコメント (全 1 件中、最新 5 件まで表示しています)
導入して暫く経ちますが,今のところ効果覿面のようです。
ロボットスクリプトによる検索クエリはほぼ皆無となり,本来のビジタによる検索語彙がログに残るようになりました。
ちなみに登録している NG ワードリストは↓こんな感じです。
http://www.magicvox.net/cgi-bin/admin/ngword.txt