• かちびと.net

    WordPressでスパムユーザーの自動登録を簡単なコードで防ぐ方法。おそらくかなり防げるんじゃないかなと思います。登録画面に項目を増やしてバリデーションする、というアイデア。

    Kudos for

    WordPress jQuery
  • About This

    Web制作に役立つTips、チュートリアル、、マーケティングに役立つ情報などのリソースをほぼ毎日配信しています。宜しければメモ代わりにご利用下さい。詳しい情報はAbout me またはhumans.txtをご覧下さい。

    Kachibito.net is a community-based website for web designers and developers. The site includes a popular weblog, a design gallery, a open source software, design tips, and the various web-news.

  • Links

WordPressでスパムユーザーの自動登録を簡単なコードで防ぐ

スポンサーリンク

WordPressを使ったサイトでユーザー登録を可能にしているサイトもちらほらと見かけるようになりました。個人的にはあんまり運営経験無いんですが、サービスとスパムは切っても切れない問題ですよね。そこで一つ、簡単な方法でスパムユーザーの登録を防ぐ方法をメモしておきます。

とはいえ、最近はOAuth認証を使ったTwitterやFacebookによるユーザー登録のほうが目立つ印象ですが、所詮ソーシャル界隈で便利というだけの依存的なものに過ぎませんので有効な解決策とはいえません。

API等に頼らない、非依存型のスパム対策という選択肢もあることがやはり望ましいかと思います。

実装


これはユーザー登録画面です。通常はメールアドレスとユーザー名しか項目がありませんが、このようにヒューマンチェック用に項目が追加されており、キーワードに当てはまらないと登録出来ないようになっています。

答えは日本語で

この場合、誰でも分かる答えである必要がありますので、例えば「このサイトのドメインは?」とか「サイト名は?」とか、うまく考えてみてください。

よくある足し算みたいなやつでもいいかもですけど、ターゲットが日本人オンリーなら回答は日本語のほうが確実っぽいです。

ではコードです。

コード

functions.phpに追記します。

add_action( 'register_form', 'add_register_field' );
function add_register_field() { ?>
    <p>
        <label><?php _e('ここに質問内容') ?><br />
        <input type="text" name="user_proof" id="user_proof" class="input" size="25" tabindex="20" /></label>
    </p>
<?php }

add_action( 'register_post', 'add_register_field_validate', 10, 3 );
function add_register_field_validate( $sanitized_user_login, $user_email, $errors) {
    if (!isset($_POST[ 'user_proof' ]) || empty($_POST[ 'user_proof' ])) {
        return $errors->add( 'proofempty', '<strong>ERROR</strong>: 質問に答えなかったときのエラー文章'  );
    } elseif ( strtolower( $_POST[ 'user_proof' ] ) != 'ここが回答。これにマッチしないとエラーが出る' ) {
        return $errors->add( 'prooffail', '<strong>ERROR</strong>: マッチしなかったときのエラー文章'  );
    }
}

ユーザー登録フォームにダミー的に項目を追加してバリデーションしてあげればいい、というアイデアです。空白でも答えが間違っていても登録通過しません。

シンプルでいいのでは。個人的にはあまり登録制のサイトを作る機会が無いのでどれだけスパムユーザーがいるか分かりませんけど、たまにBuddyPressでスパムユーザーを見かけるので困ってる方もいるかなと思って記事にしました。

コードは以下を参考にしました。

via:WP Glee

URL :
TRB :

Comments & Trackbacks (5)

  1. J2

    もっと早く知りたかった〜。
    BuddyPressでスパムユーザー登録、無茶苦茶多いんです。
    鬱陶しくて閉鎖しましたが、これを知っていればマシだったかも。。。
    今度どこかで使いたいと思います!
    有益な情報ありがとうございますっ!

    • シロ

      こんにちは!

      BuddyPressでスパムユーザー登録、無茶苦茶多いんです。
      鬱陶しくて閉鎖しましたが、これを知っていればマシだったかも。。。

      ちらっとそんな話を聞きまして・・・プラグインでどうにかやっているのが現状のようですね。

      僕もこのコードでスパムを撃退した、という実績は無いんですが理論上はほとんど防げるのではないかなと思います。このフォームバリデーションはbotでは通せないはずですし。

      使う機会がありましたらぜひお試し下さいー!

  2. wp初心者

    こちらの情報がまさに私の探していたものと一致しました。
    ありがとうございます。
    早速、上記のように設置してみましたら
    エラーが表示されても登録リクエストは管理者へ送信されてしまいます。
    WP3.5ですが、何か不足しているのでしょうか?

Twitter

Web制作に役立つそうなリソースを独断と好みで配信しています。

かちびと.netにリンクの無いトラックバックはお受けいていません。
コメントされる前にガイドラインをご覧下さい。

twitter facebook rss contact

Ads

Posts

Contact

Services