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アドレスはスパム投稿一覧よりボタンひとつで削除出来ます。

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

これまでの変更点について

-- これまでの変更点について

・2.8.2 ロードバランサ経由のクライアントIP取得ができるように HTTP_X_FORWARDED_FOR を取得するようにしました。  JavaScriptの不具合修正

・2.8.1 ホワイトリスト判定に不具合がありロジックを修正しました。

・2.8 ホワイトリスト登録IPアドレスだけを許可するフラグを追加  このフラグが「する」担っている場合は・・・   ホワイトリストに登録したIPアドレスのみ許可するフラグをチェックするとホワイトリスト登録IP以外は無視されるようになります。   このフラグが付いている場合は本来ノーチェックだったホワイトリストへIPアドレスチェック以外が行われるようになります。

・2.7 スパム判定メソッドの整理を実施。  外部から利用できるようにしました。

・2.6.10 管理画面レイアウト崩れの修正

・2.6.9 2015/8/3  すぱむちゃんぷるーの代替スパムフィルタが判定の不具合となる危険性がありましたので一度機能削除しました。  テキストでリストを記述されている場合はそのまま稼働します。  ダミー項目機能において一部テーマで隠しフィールドが表示されてしまう不具合報告がありましたので修正しました。

・2.6.8 2015/5/12  「スパムデータベースへの保存」を デフォルト OFF にしました。  スパムデータベースの最小保存期間を 3日から 1日に変更しました。  スパムデータベースからすべてのデータを削除出来るようになりました。

アンインストール時にスパムデータテーブルの削除を行うようにしました。  またアンインストール時に一部optionsに格納されるパラメータが削除されていなかった不具合を修正しました。    WordPress非推奨の部分を一掃しデバッグモードにてエラー(Warning)が表示されていた部分を修正しました。

・2.6.7 2015/4/3  コメント欄が表示されないページではスクリプトの読込みを行わないように制御を追加

・バージョン2.6.5  2014/12/22  スパムフィルタを自身で設定できるように変更しました。  選択肢「bsb.spamlookup.net, bsb.empty.us, list.dsbl.org, all.rbl.jp」  及び自由記入欄にてカンマ区切りでサービスのURLを入力できます。  ※記述に誤りがありますと通信が返ってこないためコメント出来ない可能性がありますのでご注意ください。

 スパムデータベースの最小保存期間を 7日から 3日に変更しました。

 プラグイン作成者のwordpress.orgネームが間違えていた(IDにしていた)ためプラグインページにプロフィールリンクが  表示されていない大変寂しい結果になっておりました。今バージョンより修正いたします。

・バージョン2.6.4  2014/06/23  タイトルの文字列をそのまま流用し「日本語」を使うことでフィルタを回避しようとする方法を排除するため  タイトル文字列を排除してカウントする機能を追加。(デフォルトで効くようになっています。)  「日本語文字列含有数」については、この「タイトル」に使用されている文字列を除いた数をカウントするようになります。

 例)タイトルに使用された文字は「えーびーしー」という文字列の場合、「え」「び」「し」「ー」が何度出現してもカウントされません。    「びしえー」というように文字列を入れ替えても「えー びー しー」とスペースを入れても関係なくカウントされなくなります。

 JSファイルの $ を jQuery に変更。

・バージョン2.6.3
 2014/06/06
 スパムデータベースの表示速度を向上するため
 スパムコメントの表示を個別画面へ移動(エラーをクリック)

 スパムの区別が「すぱむちゃんぷるー」でも「指定IP」でも同一「ブロックIPアドレス」であったが
 「すぱむちゃんぷるー」を分けて表示するようにした。これによりブラックリストから外せる場合が増えるはずです。

 管理画面の見栄えを変更しました。

・バージョン2.6.2
 スパム対策設定の初期値を長年の研究の末の「最適」であろう設定値にしました。
 デフォルト値として項目の下に記載しています。長年ご利用の方は、参考に調整してください。
 IE8にてJavaScriptエラーとなっていた箇所があり、「tsa_param.js」を修正いたしました。大変ご迷惑をお掛けいたしました。

・バージョン2.6.1
 スパムデータベースの表示に時間がかかるため「設定」部分と「スパムデータ」表示画面の2メニュー構成に変更しました。
 すぱむチャンプルーによる捕捉の場合にエラータイプが正しく表示されていない不具合を修正しました。
 スパム投稿内容によって画面が崩れる不具合を修正しました。

・バージョン2.6
 コメント欄に隠しフィールドを生成しその項目に入力があればスパム判定する機能を追加。
 スパムデータベースに[error_type]を追加。なにが原因でスパム判定されたかとスパム投稿の内容をスパムデータベースで保存(255バイトのみ)
 スパム一覧に少し表示するようにしました。
 ※データベースを直接参照すれば最新以外のスパム内容もわかります。(wp_)tsa_spamテーブルです。authorとcommentのみ格納しています。

 個人的にThrows SPAM Awayの設定内容をどこかに保存しておきたい場合がありましたので、そのためのメモ欄を追加しました。
 これは便利機能なだけで本体機能自体とはなんら関係ありませんのでご自由にお使い下さい。

・バージョン2.5.2.1
 管理画面の微妙な調整を行いました。

・バージョン2.5.2
 バージョン2.5.1でホワイトリスト等機能ブロックが無くなってしまったミステイクがあったため精査し機能を戻しました。
 大変失礼いたしました。設定されていたデータはそのまま残っていると思いますが、保証はいたしかねますのでご確認のほどよろしくお願いいたします。

・バージョン2.5.1
「Throws SPAM Away」バージョン2.5.1をリリースしました。

実は、WordPress3.6から導入されたテーマ「Twenty Thirteen」で表示崩れがありましてその対策を行いました。

表示が崩れることで使用出来なくなってしまっていた方もいらっしゃったようで大変申し訳なく思っております。

今回の対応で表示くずれがなくなると思いますので、お試しいただければありがたいです。

今回のバージョンアップのキモとなる設定項目がこれです。

まず、このプラグインを入れるとデフォルト設定で「日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)」という文言がコメントフォームの下に表示されていました。

これが旧バージョンまでは

タグで挿入されておりました。
これが表示崩れの最大の原因です。
テーマ TwentyThirteen もしくは WordPress3.6以降のコメントフォームへのタグ挿入が表示崩れとなりうる場所への出力になってしまったことで崩れたのだと思います。

そこで対策を3つ講じました。

◯<div>タグを <p>タグへ変更
◯タグの挿入位置を「コメントフォームの下」と「送信ボタンの上(コメントフォーム内)」から選択出来るように設定  ※デフォルトは表示くずれが起きにくい「送信ボタンの上」に変更しました。
◯そもそも「日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)」という文言を表示しない場合でもタグを挿入していたのでこのメッセージが不要の場合は(空白)にすればタグの挿入も行わないようにしました。

まず、注意文言の表示位置を替えてみてください。(バージョンアップでコメント送信ボタンの上に来ますのでそれで治っている場合も考えられます)
どうしても崩れる場合は注意文言を削除し空白に設定してください。
これでタグも挿入されないため「Throws SPAM Away」が表に影響を及ぼすことはなくなります。

・バージョン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アドレスからスパム投稿を受けた記事(リンク)

このバージョンよりファイル構成が変更になり、今まで「throws_spam_away.php」にプログラムのすべてが存在しましたが、プロセスの部分を
「throws_spam_away.php」に残し、クラスの部分を「throws_spam_away.class.php」に移しました。
これにより、throws_spam_away.class.php」を外部から読込みメソッドを使用することを目論んでいます。
※まだ実験段階です。

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

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

・バージョン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が含まれない場合、日本語が含まれていても無視するかどうかの設定も出来るようにしました。

設定項目

tsa_graph_.png

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

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

・バージョン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が含まれない場合、日本語が含まれていても無視するかどうかの設定も出来るようにしました。