概要
このプラグインはコメント投稿時にAjaxを使ってスパムロボットによる投稿コメントか判別し自動でブロックするプラグインです。一般的なスパム対策としてAkismetプラグインがありますがブロックされるのは9割程度で100%は止まりませんでした。別の方法としてCAPTCHA系のプラグインを使いBot対策する手段もありますが、こちらはほぼ100%スパムBotからの投稿はブロックされますがユーザーに煩わしい確認文字入力に毎回協力してもらう必要があります。
このプラグインでは、見えない入力項目を追加しコメント投稿時にjavascriptでCAPTCHA入力に代わる固有の確認トークン入力処理をで行うことでスパムBotからの投稿をブロックします。
利用ユーザーのコメントフォームの見え方は変わりません。
作者の環境では、今のところこのプラグインで100%スパムBOT投稿がブロックできています。
使い方
1.インストール方法
WordPressの管理者メニューから →「プラグイン」→「新規追加」
→「sz-coment-filter」を検索
→「いますぐインストール」
→「有効化」します。
もしくは
FTPで’sz-comment-filter’フォルダを
/wp-content/plugins/
へ配置WordPressの管理者メニューから →「プラグイン」
→「インストール済みプラグイン」
→
sz-comment-filter
を「有効化」します。(※)初期設定は必要ありません。プラグインを有効化するとスパムブロック機能がはたらきます。
2.ブロック実績の確認
WordPressの管理者メニューから →「コメント」 →コメント一覧表示の上部にブロックした回数と、直近のブロックした投稿内容のログが表示されます。 (※)表示されない場合は上部メニューの「表示オプション」から「スパム投稿のブロック状況」にチェックが入っているか確認してください。
FAQ
Q.具体的にどのような方法でブロックしているんですか?
JavaScript(AJAX) と隠れた2つの入力フィールドを使ってブロックしています。Q.1つ目のフィールドは何に使っていますか?
このフィールドはJavaScriptにより表示を消しています。「コメントを送信」ボタンを押したタイミングで、Ajaxによりサーバーへトークンコードをとりに行き、取得したトークンコードをこのフィールドへセットします。スパムボットの場合このフィールドへ正しいトークンがセットされることなくコメント送信されてきます。
サーバー側でトークンが正しくなければ入力エラーとして扱いコメントを受け付けません。

Q.2つ目のフィールドは何に使っていますか?
このフィールドはCSSスタイル定義により表示を消しています。2つ目の入力フィールドはトラップのダミー入力です。このフィールドは利用者には通常見えないので何も入力されずにコメント送信されてきます。しかしスパムボットはこのフィールドへURLやEmailなど、なぜか一生懸命入力してきてくれます。
サーバー側で何か入力があればエラーとして扱いコメントを受け付けません。
Q.javascriptがオフのブラウザ環境ユーザーでも使えますか?
使えます。ただしその場合、トークンコード入力欄が表示されるのでCAPTCHAのように手入力で確認文字を入力する必要があります。
Q.trackbackタイプのコメント投稿は処理されますか?
trackbackタイプのコメント投稿はできません。もしtrackbackタイプのコメント投稿を許可する場合には下記手順によりソースコード変更で許可できます。(この場合,trackbackタイプのスパム投稿はすべて受け付けられます) →sz-comment-filter.phpのソースコードを編集 →$szmcf_settings”変数の”allow_trackbacks”要素を”true”に変更$szmcf_settings = array(
...
'allow_trackbacks' => true,
...
);