Throws SPAM Away

開発には多大な時間と労力がかかっております・・・というより楽しんで作っているわけですが(笑)
応援してくださる方は欲しいものリストからご支援いただけるとありがたいです!
どうぞよろしくお願いいたします。

WordPress 公式プラグイン Throws SPAM Away

コメントに日本語が使用されていないものや任意のIPアドレスからの投稿を無視するプラグイン

海外からのコメントスパムに対抗(?)する手段として開発したプラグインですが
現在下記のフィルタでスパム判定しています。

スパム判定フィルタ

日本語判定

日本語判定(日本語を含むかどうか)
 コメント欄に日本語文字列が含まれていないと投稿出来ない・・・
 といってもエラーにするのではなく「無視」して何事もなかったようにもとの記事に戻ります。

 ダブルバイトをカウントするのではなく正規表現により日本語を検出しているため、ダブルバイトの他言語も侵入してきません。
 [設定にてON/OFF出来ます。]

NGキーワード判定

NGキーワードを複数設定することが出来ます。(カンマ区切りにて設定)
 日本語の文章であっても設定された「NGキーワード」を含む投稿の場合は、同様に無視します。
 もちろん他の言語のキーワードでもOKです。

 日本語が一切入っていないコメントでも「NGキーワード」だけ設定したい場合を想定し  日本語が入っていないと許可しない設定を「オン・オフ」出来るようになっています。

リンク含有数判定

リンクと思わしき’http’を含んだ文字列が許容数(初期設定は3つ)を超えて包含される場合にエラーとします。

ダミー項目による判定(スパムロボット対策)

空のダミーフィールドを生成しJavaScriptでの制御を行うことでスパム判定します。(停止も可能です)
 ※スパムプログラムによる投稿に有効です。実際に入力しようとしてもその項目は見えないようになっています。
 [設定にてON/OFF出来ます。]

IPアドレスブラックリスト

指定IPアドレスからの投稿をスパムとして処理します。
 以前スパムとしてチェックした投稿のIPアドレス及び、任意のIPアドレスでの制御も出来るようになっています。

  ブラックリストに登録したIPアドレスからの投稿をスパム処理します。

IPアドレスホワイトリスト

ホワイトリストに登録したIPアドレスからの投稿はすべてのフィルタを通しませんので優先的に通常コメントとしてノーチェックで投稿処理がなされます。
※ホワイトリストが一番強力にしてありますので、このIPアドレスがAkismetで捉えられていてもスパムちゃんぷるーでスパム扱いになったとしても優先で通過させます。

スパムデータベースでスパム投稿の増減を確認できます

表示期間を設定出来ますのでお好みの周期を設定してください。

また表示期間を過ぎたデータを削除することも可能です。
※あまりにも解析処理に時間がかかるようでしたら過去のデータを削除することをお試し下さい。

テストなどでスパム投稿したIPアドレスはスパム投稿一覧よりボタンひとつで削除出来ます。

※コメント投稿時のスパムコメント対応の煩わしさが原因で作ったものですのでスパム判定されたコメントを保持しておりません。

設定項目

スパムコメント投稿の状況は最新7日分以上をグラフ表示します。

また、最新7日分以上のスパム投稿IPアドレスと回数をリスト化して表示します。
これらの情報を元に 「.htaccess」ファイルにて IPアドレスを拒否するのも効果的かもしれません。
※ .htaccessの利用方法については「.htaccess IP制限」などで検索してみてください。

・バージョン2.5
「スパムちゃんぷるー(ベータ)」http://spam-champuru.livedoor.com/dnsbl/ を利用出来ます!スパムちゃんぷるーでスパム判定する機能です。  「IPアドレス ホワイトリスト」を導入しました。ホワイトリストに登録されたIPアドレスからの投稿はノーチェックで投稿完了されます。  ※ホワイトリストが一番強力にしてありますので、このIPアドレスがAkismetで捉えられていてもスパムちゃんぷるーでスパム扱いになったとしても優先で通過させます。  スパムデータベースの表示期間を指定するようにしました。また表示期間を過ぎたデータを削除することも出来るようにしました。  テストでスパム投稿したIPアドレスなどをスパムデータベースから削除する機能を付けました。  スパム投稿データに「スパムちゃんぷるー」の結果も付加しました。

・バージョン2.4
スパム情報収集機能を「スパムコメント情報を保存する」にした場合に限り、「一定時間内スパム認定機能」が作動するように出来ます。
この「○」を設定します→

 

《○分以内に○回スパムとなったら○分間、当該IPからのコメントはスパム扱いする設定》

例えば、「10分以内に2回スパムとなったら10分間、当該IPからのコメントはスパム扱いする」とした場合は 過去(今から)10分前から今まで2回スパム扱いとなったIPからの投稿は3回目以降スパム扱いとなります。 そのため、10分以内に3回目のスパムを作ってしまったためそこから10分以上経過しないとずっとスパム扱いになってしまいます。
今までのように「これは・・・・ダメ」「これは・・・・ダメ」「これは・・・・行けた!」「よっしゃーー!突っ込めー!」という風にはできなくなるということです。 上記の例はデフォルト値ですが、「1時間(60分)以内に3回スパムになったら24時間(1440分)スパム扱い」という設定の場合は 24時間以内に3回スパムがあったら・・・という設定とほぼ同等(完全に同等ではありませんが・・・)ですので 24時間の方に合わせる形で24時間以内のスパム回数を算出するようにしています。(今後見直すかもしれません) あまり長い時間を指定しますとコメント欄への反映が遅くなりますので気をつけてください。 5~10分程度を推奨します。

スパム投稿の一覧を見やすくしました。
これまでスパム投稿情報の表示が日付が一覧で縦表示していたため見づらいものとなっておりました。
今回、横軸にその情報を追加しました。
また、スパム投稿リストの表示も改良し、IPアドレス・スパム投稿数・最終投稿日でソートを掛けられるようにしました。

IPアドレス指定を「カンマ区切り」から「改行区切り」へ変更。
【スパム投稿IPアドレス情報に下記データ追加】
○IPアドレス
○ホスト名が特定出来た場合はホスト名
○このIPアドレスからの最終投稿日時
○このIPアドレスからスパム投稿を受けた記事(リンク)

・バージョン2.3.3
スパムコメント数を保持出来るようにしました。設定を変更しないと機能しませんのでご注意ください。
保持データは下記の通り
○投稿日時
○投稿された記事ID
○投稿元IPアドレス
となります。
作成されるテーブル名は wp_tsa_spam(wp_の部分は設定されたもの) となります。

現在は スパム投稿したIPの件数(ユニーク) と スパム投稿総数 のみ表示中・・・・StatPressのような表示にしました。
また、現在まで「NGワード」に設定したものが 投稿者の「名前」に存在していた場合でも通っていましたが、「名前」にも効くようにしました。
(トラックバックでも同様に名前もNGワード対象に追加しています。)

収集したIPアドレスを元にアクセス禁止措置に使用するなどの参考になれば幸いです。

・バージョン2.2 ‘http’を許容数(初期設定 3)を超えて包含する場合にエラーとする機能を付けました。
導入後すぐに機能しはじめます。制限数の増減も行えます。
(注意!)不要な方は設定の変更でこの機能をOFFにしてください 
※インストールしただけで最大限活用できるように初期設定値を設定いたしました。
日本語スパム投稿(おもにリンクを多数掲載するもの)に対抗するための追加機能です。ご理解のほど、よろしくお願いします。

・バージョン2.1.1 一部レンタルサーバー等の設定によってコメント投稿後エラーまたは白画面になってしまう不具合を修正  ※確認したレンタルサーバー(さくらレンタルサーバー)※コメント欄に独自修正を行うような特殊な条件により発生する模様

・バージョン2.1でIPアドレスの範囲指定を可能にしました。

・バージョン2.0で、WordPressのcommentsテーブルを検索し「spam」扱いとなったコメントのIPを収集しそのIPからの投稿を無視出来る機能と任意のIPアドレスからの投稿を無視出来る機能をつけました。

・バージョン1.7で、元の画面に戻ってくる際の挙動を修正しました。  エラー画面表示の時間を「0」に設定していた場合はエラー画面を一切介さずリダイレクトするようにしました。  0以上の場合の挙動は以前と変わらずJavaScriptで時間になったら戻ってきます。

・バージョン1.6にてNGキーワードとは逆にコレが入っていないとダメという「必須キーワード」の設定が出来るようにしました。  日本語を入れれば良いため通ってしまいやすい「中国語」への配慮です。「が」や「の」や「は」など、日本語文章が成り立つ上で必ず使用するであろう「ひらがな」を入れることで効力が発揮されると思います。

・バージョン1.5では「トラックバック」に対しても同様の規制を入れられるようになりました。  トラックバック記事の内容に日本語を含まないものを無視します。  加えて、トラックバック記事内にこちらのサイトのURLが含まれない場合、日本語が含まれていても無視するかどうかの設定も出来るようにしました。

関連記事

WordPressプラグインThrows SPAM Awayを使ってContact Form 7にIP制限などのバリデーションを追加する方法(Qiita)

WordPressプラグイン MW WP Form に Throws SPAM Away を使ったバリデーションを設定画面から設定する(Qiita)

WordPressプラグインThrows SPAM Awayを使ってMW WP FormにNGワード指定などのバリデーションを追加する方法(Qiita)