お知らせ
2008年6月24日
「作って覚えるPHP+MySQLアプリケーション」が発売されました。
PHP+MySQL+Smartyを使って、ブログ/ショッピングサイト/マッシュアップの3つのWebアプリケーションを作る方法を解説しています。
他にも多数書籍を執筆しています。
こちらもぜひご覧ください。
コメントスパム送信者にコメントをさせないようにするプラグイン
Blogが一般化するにつれて、コメントでスパムを送信する輩も増えました。
最近では、「Blogを自動巡回しつつ、コメントスパムをまきちらすプログラム」もあるようです。
当Blogも、一日に300件近いコメントスパムが送信されたことがありました。
そこで、「コメントスパム送信者にコメントをさせないようにする」というプラグインを作ってみました。
1.動作について
Movable Type 3.2ではスパム対策機能が強化されていて、スパム対策プラグインをインストールして適切に設定することで、スパムを受信しても「迷惑」の扱いにすることができます。
上にあげた「300件ものコメントスパム」も、拙作の「日本語でないスパムをフィルタするプラグイン」によってすべて迷惑扱いになり、表に公開されることはありませんでした。
ただ、コメントを受信してからスパムかどうかを判断するので、状況によっては迷惑扱いのコメントがかなり増えます。
これは精神衛生上あまり好ましくないです。
また、コメントスパマーがBlogに接続してコメントしてくるので、それによってサーバーに無駄な負荷をかけられることにもなります。
そこで、このプラグインでは、「コメントスパマーにBlogを見せない」という手法を取ります。
IPアドレスでアクセス制限をかけて、そのIPアドレスからBlogにアクセスしても、エラーを返してBlogを見せないようにします。
これによって、コメントスパムが投稿されること自体を防ぎ、コメントスパムを減らすことができます。
また、スパムが投稿されてサーバーに負荷がかかることを防ぐこともできます。
ただし、MT3.2以降専用のプラグインになっています。
また、アクセス制限の処理はPHPで行いますので、BlogをPHP化していることが必要になります。
2.インストール
まず、以下のリンクをクリックして、プラグインのファイルをダウンロードしてください。
プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。
ファイルを解凍すると、「KnockoutSpammer」というフォルダができます。そのフォルダを、Movable Typeの「plugins」ディレクトリに丸ごとアップロードします(「plugins」ディレクトリの中に、「KnockoutSpammer」ディレクトリができるようにします)。
そして、「KnockoutSpammer」ディレクトリの中の「mt-knockout-spammer.cgi」のパーミッションを変え、実行可能に設定します(通常は「705」や「755」)。
なお、ファイルの文字コードはutf-8にしてあります。
Movable Typeの文字コードをutf-8以外にしている方は、その文字コードに変えてアップロードしてください。
3.テンプレートの設定
インデックステンプレートを1つ新規作成し、以下のように設定します。
・テンプレート名 → KnockoutSpammer
・出力ファイル名 → knockoutspammer.php
・「インデックス・テンプレートを再構築するときに、このテンプレートを自動的に再構築する」のチェックはオフにする
・テンプレートの内容は以下の通り
<$MTKnockoutSpammer$>
また、コメントスパマーに見せたくないページのテンプレート(エントリーアーカイブテンプレートなど)の先頭に、以下の1行を追加します。
<?php include('<$MTBlogSitePath$>knockoutspammer.php'); ?>
そして、ここまでで設定したテンプレートを再構築します。
4.禁止IPアドレスの登録(手動)
Movable Typeには「禁止IPアドレス」を設定する機能がありますが、これを使ってアクセスを禁止したいIPアドレスを登録します。
登録は、手動で行う方法と、プラグインで一括して行う方法があります。
手動で行う場合、Movable Typeの設定ファイル(mt-config.cgi)に、以下の行を追加します。
ShowIPInformation 1
すると、Blogの設定のページに「禁止IPアドレス」のタブが追加されます。
ページの右上の方にある「アドレスを新規登録」のリンクをクリックすると、禁止IPアドレスを登録することができます。
5.禁止IPアドレスの登録(一括)
コメントスパムの送信元IPアドレスを、一括して禁止IPアドレスに登録することもできます。
Blogの設定のページを開き、「プラグイン」のタブをクリックすると、プラグイン一覧に「Knockout Spammer」が出ます。
その部分の「設定を表示」のリンクをクリックすると、「迷惑コメントの送信元IPアドレスを禁止IPアドレスのリストに追加する」のリンクが表示されます。
これをクリックすると、「迷惑コメント」になっているコメント(通常はコメントスパム)の送信元のIPアドレスを、一括して禁止IPアドレスのリストに登録します。
↓「迷惑コメントの送信元IPアドレスを禁止IPアドレスのリストに追加する」のリンクをクリックする
また、「迷惑トラックバックの送信元IPアドレスを禁止IPアドレスのリストに追加する」をクリックすると、迷惑トラックバックの送信元のIPアドレスを一括登録することもできます。
6.KnockoutSpammerテンプレートの再構築
上記の4または5の手順で禁止IPアドレスを追加したら、そのたびに3.の手順で作ったKnockoutSpammerテンプレートを再構築します。
7.コメント関係のテンプレートをPHP化している場合
以前に「コメント/検索関連テンプレートのPHP化」というカスタマイズを紹介しました。
このカスタマイズを行うと、コメント元のIPアドレスが、自分のサーバーのIPアドレスになってしまいます。
そこで、上記のカスタマイズを行っている方は、以下の作業も行ってください。
・mt-phpincgi.phpの差し替え
以下のページに接続し、表示されたソースをコピーして「mt-phpincgi.php」のファイル名で保存して、既存の「mt-phpincgi.php」と差し替えてください。
・SetIPプラグインの登録
以下のページに接続し、表示されたソースをコピーして「SetIP.pl」のファイル名で保存して、Movable Typeの「plugins」ディレクトリにアップロードしてください。
前後の記事
関連するエントリー(2件)
- 送信元IPアドレスによるスパム対策の効果(2006年01月15日 11:04)
- 日本語でないスパムをフィルタするプラグイン(MT3.2以降用)(2005年10月08日 11:06)
トラックバック(1件)
このブログ記事を参照しているブログ一覧: コメントスパム送信者にコメントをさせないようにするプラグイン
このブログ記事に対するトラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/357.
昨夜から今日にかけてコメント・スパムが30件ほど届いています、コメントが届くと携帯にメールが届く設定に 続きを読む


コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。
おはようございます。
毎日 迷惑コメントの数が半端じゃないので、こちらのプラグインを使わせていただくことにしました。
いちいち削除するのも大変なほど来てるんですよぉ。