spam_filter.phpで特定のホストをブロック


投稿日:2011年12月21日
  • 0
  • 0



こちらの記事」で書いたとおり、同じUSER_AGENTの業者から繰り返しスパム行為を受けました。

IPやホスト名によるフィルタで対応していましたが、4社間をローテーションするようにスパム行為を続けるため、対応するのも煩わしくなりました。

そこで「spam_filter.php」で業者の特徴であるUSER_AGENTをブロックすることにしました。


設定方法

今回の業者のUSER_AGENTは「Mozilla/5.0 (Windows NT 5.1; rv:6.0.1) Gecko/20100101 Firefox/6.0.1」なので正規表現に直してブロックリストに追加する。
Mozilla¥/5¥.0 ¥(Windows NT 5¥.1; rv:6¥.0¥.1¥) Gecko¥/20100101 Firefox¥/6¥.0¥.1」と直した。
正規表現の書き方については「以前書いた記事」を参照して下さい。

spam_filter.php」の117行目あたり

//// useragent - HTTP_USER_AGENTによるフィルタ
// 許可しないHTTP_USER_AGENTの正規表現
define('SPAM_FILTER_USERAGENT_REG', '/WWW-Mechanize|libwww|Mozilla¥/5¥.0 ¥(Windows NT 5¥.1; rv:6¥.0¥.1¥) Gecko¥/20100101 Firefox¥/6¥.0¥.1/i');
define('SPAM_FILTER_USERAGENT_PLUGIN_NAME', 'tracker,recorder,edit,comment,pcomment,article,attach');

とした。

さらに「pukiwiki.ini.php」に追加した「spam_filter.php」用のタグ

define('SPAM_FILTER_COND', '#atag() or #urlbl() or #ipbl() or #onlyeng()');

にユーザーエージェントをブロックする機能を加える「#useragent()」を追加して

define('SPAM_FILTER_COND', '#atag() or #urlbl() or #ipbl() or #onlyeng() or #useragent()');

とした。


これで同じソフトを使って荒らし行為を繰り返す業者の書き込みをブロックできる。今回はPukiWikiのプラグインの設定でしたが、cgiで書かれた掲示板やCMSでも同じような設定項目があるはずなので、応用できると思います。


現在のページを共有する



現在のページに関連する記事

spam_filter.phpで特定のホストをブロック spam_filter.phpで特定のホストをブロック
spam_filter.phpを導入 spam_filter.phpを導入
spam_filter.phpで特定のホストをブロック PukiWikiで日本以外の国からの編集を拒否する方法
spam_filter.phpで特定のホストをブロック PukiWikiで空のコメントが追加されてしまう場合の対処法
spam_filter.phpで特定のホストをブロック ログ解析やユーザーの振り分けに活躍する、ユーザーエージェントまとめ
PukiWikiへ「attachref.inc.php」と「areaedit.inc.php」プラグインの導入 PukiWikiへ「attachref.inc.php」と「areaedit.inc.php」プラグインの導入
サーバへPukiWikiをインストール サーバへPukiWikiをインストール

おすすめの記事

これ以上ないくらい簡単な例から学ぶ、レスポンシブwebデザインの作り方

これ以上ないくらい簡単な例から学ぶ、レスポンシブwebデザイン…

シンプルなスパムコメント対策プラグイン「Simple AntiSpam」を作成しました

シンプルなスパムコメント対策プラグイン「Simple AntiSpam」を…

サーバリソースをリアルタイムに監視するdstatのインストールと使い方

サーバリソースをリアルタイムに監視するdstatのインストールと…

WordPressで手軽にAdblock対策するならBetter Stop AdBlockで決まり!

WordPressで手軽にAdblock対策するならBetter Stop AdBlockで決…

Mac OS 9時代のIDE接続のHDDをMacDrive 10を利用してWindows 10で読み込む方法

Mac OS 9時代のIDE接続のHDDをMacDrive 10を利用してWindows 10…

自前の国別IPv6、IPv4アドレス割当リストを作成しよう

自前の国別IPv6、IPv4アドレス割当リストを作成しよう

ページ編集の手間を劇的に減らす、Custom Field Templateでカスタムフィールドを作る方法

ページ編集の手間を劇的に減らす、Custom Field Templateでカス…

WordPressの新・旧ループからカスタムクエリ・アーカイブまで徹底解説

WordPressの新・旧ループからカスタムクエリ・アーカイブまで徹…


コメントを残す

コメントは認証制のため、すぐには反映されません。

プログラミングに関する質問は「日本語でプログラミングの悩みを解決するQ&Aサイト sukegra」をご利用ください。