MovableType でもやっぱり荒らしを想定してコメント投稿やトラックバックを禁止するIPを設定できますが、最近のプロバイダはIP制限だけで制限するには面倒なIP帯を持つところも多いので、リモートホストでも制限できるよう、その改造をしてみました。
プログラムを追っかけた所、まず次を変更すればいいことがわかったので、早速変更
MovableType Version 2.64 日本語化済 lib/MT/App/Comments.pm の63行目を次のものと差し替え
if ($user_ip =~ /$banned_ip/) {
↓
if ($user_ip =~ /$banned_ip/ || $ENV{'REMOTE_HOST'} =~ /$banned_ip/) {
でもって、次に禁止IPを入れてみたらコレが15文字までしか登録できない・・・(;´д`)ノ
それじゃつらいんで、制限はずすためにソースを追いかけてみたけど、さっぱりどこでも制限掛けてない。
もしやと思ってDBのテーブル定義を覗いてみたらありました・・・
mt_ipbanlistテーブル
ipbanlist_ip列 varchar(15)
あと、差し替える条件式を見ればわかりますが、禁止IPには正規表現が使えちゃいます(^^;
つまりうっかり
192.168.1なんていう風に登録すると「10.192.168.1」などにもヒットしてしまうので注意が必要です。
ちゃんとした正規表現が書ける自信の無い人は以下のようにした方が安心だと思います
if ($user_ip =~ /^$banned_ip/ || $ENV{'REMOTE_HOST'} =~ /$banned_ip$/) {
でも、使いこなせれば正規表現は便利なんで知らない人は覚えちゃいましょう( ̄▽ ̄)ノ
2003年10月28日(火) 追記
TrackBackの対策をするのをすっかり忘れてました(笑)
MovableType Version 2.64 日本語化済 lib/MT/App/Trackback.pmの164行目辺り次のものと差し替えこれでTrackBackも同様に制限できます。
if ($user_ip =~ /$banned_ip/) {
↓
if ($user_ip =~ /$banned_ip/ || $ENV{'REMOTE_HOST'} =~ /$banned_ip/) {
にしてもコメントよりむしろトラックバックをspamとかに使われた方が防ぎにくいんだよなぁ・・・
最悪無効しかないのか・・・