まぁ、ちょっと表現は大袈裟ですが、日々、時間の捻出に苦労している中、 SPAM コメントへの対応なんてものに時間を割きたくなかったので、藁にもすがる思いでコメント欄にキャプチャコードを導入したところ効果絶大でした。
そもそもスパムコメントとは
自分のエントリにコメントを貰うのはとても嬉しいことなのですが、このコメントにエントリとは全く関係ない海賊版の通販サイトへのリンクなどを投げ込んでくるものをスパムコメントと呼んでいます。その多くは WordPress のスパムコメントチェックプラグインである Akismet プラグインが自動的にスパムとして判定してくれます。
プラグイン/Akismet – WordPress Codex 日本語版
それでも、スパムコメントを削除したり、スパムコメントの中に普通のコメントが誤判定されていないかを確認する作業にやたらと時間が掛かるのです。
3月には6800件を超えるスパムコメントをいただいた わけなのですが、4月は更に量が増えて10日の時点で1万件を超えていました。
キャプチャコードを導入した
スパムコメントの多くはエントリのコメントURLに対して機械的にスパムを送り込んできます。これに対して、コメント入力毎に個別のコードを入力してもらうようにすることで、機械的にポストできなくすることができます。また、この文字列を画像として表示することで、機械的にポストすることは殆どできなくなります。
今回は SI CAPTCHA Anti-Spam というプラグインを導入しました。
WordPress › SI CAPTCHA Anti-Spam « WordPress Plugins
導入の仕方はプラグインの「新規追加」で「SI CAPTCHA」を検索すれば見つかりますので、これをインストールすれば使えるようになります。
レイアウトを合わせるのに苦労した
とにかくスパムコメントを減らしたかったので、まずは導入を優先したのですが、実はレイアウトが崩れまくっていました。
SI CAPTCHA プラグインは設定画面で CSS などを色々とカスタマイズできるようになっているのですが、どこをどう触ったらうまく行くのか、オプションと実際の CSS の構造の関係が設定画面を見ただけでは良く分かりませんでした。このブログで採用しているテーマ the bootstrap との兼ね合いもあるようです。
それを読み解くために SI CAPTCHA プラグインのソースコードを読んでいたら面倒くさくなってきて、力技でソース修正してしまいました。修正後のイメージはこんな感じに表示できました。
ソース修正は将来のバージョンアップなどの時に面倒を増やすだけですのでオススメしません。なので、今回は手抜きで Diff だけ以下に書いておきます。これを読み取れる人はお好きに使ってください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
@@ -310,35 +310,36 @@ echo '<br />'; } -$label_string = '<label id="captcha_code_label" for="captcha_code" class="control-label">'; +echo ' +<div '; +echo ($si_captcha_opt['si_captcha_captcha_small'] == 'true') ? 'class="captchaSizeDivSmall"' : 'class="captchaSizeDivLarge"'; +echo '>'; +$this->si_captcha_captcha_html('si_image_com','com'); +echo '</div> +<br /> +'; +echo '<p>'; + +$label_string = '<label id="captcha_code_label" for="captcha_code" >'; $label_string .= ($si_captcha_opt['si_captcha_label_captcha'] != '') ? $si_captcha_opt['si_captcha_label_captcha'] : __('CAPTCHA Code', 'si-captcha'); $label_string .= '</label>'; -$required_string = '<span class="required help-inline">'.$si_captcha_opt['si_captcha_required_indicator']."</span>\n"; +$required_string = '<span class="required">'.$si_captcha_opt['si_captcha_required_indicator']."</span>\n"; $input_string = '<input id="captcha_code" name="captcha_code" type="text" size="6" ' . $si_aria_required . ' /> '; -// if ($si_captcha_opt['si_captcha_comment_label_position'] == 'label-required-input' || $si_captcha_opt['si_captcha_comment_label_position'] == 'left' ) { // buddypress (label-required-input)(label left) -// echo $label_string . $required_string . $input_string; // BP -// } else if ($si_captcha_opt['si_captcha_comment_label_position'] == 'label-required-linebreak-input' || $si_captcha_opt['si_captcha_comment_label_position'] == 'top' ) { -// echo $label_string . $required_string .'<br />'. $input_string; // regular WP - twenty ten -// } else if ($si_captcha_opt['si_captcha_comment_label_position'] == 'label-input-required' || $si_captcha_opt['si_captcha_comment_label_position'] == 'right' ) { -// echo $label_string . $input_string . $required_string; // suffusion -// } else if ($si_captcha_opt['si_captcha_comment_label_position'] == 'input-label-required' ) { -// echo $input_string . $label_string . $required_string; // regular WP -// } else { -// echo $input_string . $label_string . $required_string; // regular WP -// } - -echo $label_string . '<div class="controls">' . $input_string . $required_string . "</div>"; // regular WP - -echo ' -<div '; -echo ($si_captcha_opt['si_captcha_captcha_small'] == 'true') ? 'class="captchaSizeDivSmall controls"' : 'class="captchaSizeDivLarge controls"'; -echo ' >'; -$this->si_captcha_captcha_html('si_image_com','com'); -echo '</div> -'; + if ($si_captcha_opt['si_captcha_comment_label_position'] == 'label-required-input' || $si_captcha_opt['si_captcha_comment_label_position'] == 'left' ) { // buddypress (label-required-input)(label left) + echo $label_string . $required_string . $input_string; // BP + } else if ($si_captcha_opt['si_captcha_comment_label_position'] == 'label-required-linebreak-input' || $si_captcha_opt['si_captcha_comment_label_position'] == 'top' ) { + echo $label_string . $required_string .'<br />'. $input_string; // regular WP - twenty ten + } else if ($si_captcha_opt['si_captcha_comment_label_position'] == 'label-input-required' || $si_captcha_opt['si_captcha_comment_label_position'] == 'right' ) { + echo $label_string . $input_string . $required_string; // suffusion + } else if ($si_captcha_opt['si_captcha_comment_label_position'] == 'input-label-required' ) { + echo $input_string . $label_string . $required_string; // regular WP + } else { + echo $input_string . $label_string . $required_string; // regular WP + } echo '</p>'; + } |
効果は絶大
SI CAPTCHA プラグインをインストールしてから、スパムコメントは1日に1件程度まで激減しました。これで管理はだいぶ楽になりました。一方でコメントを書いてくださる方には、面倒をお願いしているので、もっとスマートな対策がないか、もう少し考えていきたいと思いますので、イイ方法があったら教えてください。
WordPress 関連のエントリ
インストールや設定変更とデータ移行
プラグイン
バージョンアップ
カスタマイズ
Stinger 3関連
チューニング
MAMPを使ったバックアップサイトの構築
開発関連
最後まで読んでいただきありがとうございます。
左のアイコンをクリックして、このブログを Feedly に登録していただけると嬉しいです
Facebook ページでも情報を発信していますのでよろしかったら「いいね!」をお願いします
RSSリーダへの登録は こちら からどうぞ。
コメントを残す