Google Ajax Search API を利用したスパムフィルタ

昨日から Akismet を無効にして livedoor の スパムちゃんぷるー をのRBLを導入していますが、それをすりぬけてくるスパムもあります。DNSBLの性質上、統計をとってからデータベースに載せるので、新手のスパム元には対応しきれない面もあります。

で、いろいろ情報をさぐっているうちに「GoogleでIPアドレスを検索して検索にマッチしたらほとんどスパム」という判定方法を見つけ、早速実装してみました。


<?php
/*
Plugin Name: Google based spam filter
Plugin URI:
Description: 送信元のIPを Google 検索し、マッチしたらスパムとみなします。要PHP5。
Author: sino
Version: 0.0.1
Author URI: http://www.takanashi-it-factory.com/
*/
function reject_google_spam_IP($id) {
 $check_IP = $_SERVER['REMOTE_ADDR'];
 $spam     = false;
 $json = file_get_contents("http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=". $check_IP);
 $val = json_decode($json);
 if($val->responseData->results) $spam = true;
 if ($spam) {
  wp_die('Error: Your IP Address is found at google (http://www.google.com/search?q='. $check_IP .').');
 }
}
add_action('edit_post', 'reject_google_spam_IP');
?>

当初、これを元にした RBL を立ち上げようかとも思ったのですが、Webサービス使ってるんならプラグインにした方がいいと思い、こうしました。スパムちゃんぷるーフィルタと併用すればほとんどスパムフリーじゃないでしょうか。もうしばらく様子を見てみたいと思います。

Got Something To Say:

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

Copyright © 2024. Powered by WordPress & Romangie Theme.