WordPress/Contact7 スパム対策

以前にIPの表示の仕方を書きましたが、更にパワーアップ? リモートホストネームと使用ブラウザなどを表示させる方法と、ロボットによるスパム書き込みが出来なくなるようにクイズを設定する方法です。

=============================================
★リモートホストネームと使用ブラウザを表示させる
=============================================

(1)使用しているテーマのfunction.phpに以下を追加。

//Contact Form 7 ホスト名取得 cf. http://ja.forums.wordpress.org/topic/3470
add_filter(‘wpcf7_special_mail_tags’, ‘wpcf7_special_mail_tag_for_remote_host’,10,2);
function wpcf7_special_mail_tag_for_remote_host($output, $name)
{
// Special [wpcf7.remote_host] tag
if(!isset($re_addr)){ $re_addr = $_SERVER[‘REMOTE_ADDR’]; }
if(‘wpcf7.remote_host’ == $name){ $output = gethostbyaddr($re_addr); }
return $output;
}

//Contact Form 7 ブラウザー情報取得 cf. http://ja.forums.wordpress.org/topic/3470
add_filter(‘wpcf7_special_mail_tags’, ‘wpcf7_special_mail_tag_for_remote_ua’,10,2);
function wpcf7_special_mail_tag_for_remote_ua($output, $name)
{
// Special [wpcf7.remote_ua] tag
if(!isset($u_agent)){ $u_agent = $_SERVER[‘HTTP_USER_AGENT’]; }
if(‘wpcf7.remote_ua’ == $name){ $output = $u_agent; }
return $output;
}

★追加する場所は 「?>」より上

(2)Contact7の送信データに以下を追加(必要なら返信用のメール2のデータにも追加)

■投稿者情報
ホスト名:[wpcf7.remote_host] (IP: [_remote_ip])
ブラウザ:[wpcf7.remote_ua]

=============================================
★ロボットスパム防止のためにクイズを設定する
=============================================

[quiz capital-quiz “質問?|答え”]
をフォームに書き足すだけです。
この答えを書かないと送信出来なくなります。

以下のような形でフォームに追加

<p><b>【いたずら防止】(必須)</b><br />
※ロボットスパム書き込みを防止するため、お手数ですが以下のクイズに答えて下さい。<br />
[quiz capital-quiz “犬を平仮名で書くと?|いぬ”]

クイズは何でもOKですが万人が答えられないような物や人によって違う書き方をする物は避けましょうw
日本語の答え(特に平仮名)にすれば海外のスパムはまず間違いなくカット出来ると思います。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次