Throws SPAM Away

plugin banner

コメント内に日本語文字列が一つも存在しない場合あたかも受け付けたように振る舞いながらも無視

Author:株式会社ジーティーアイ さとう たけし (profile at wordpress.org)
WordPress version required:5.1
WordPress version tested:6.7.1
Plugin version:3.6.1.1
Added to WordPress repository:21-07-2011
Last updated:24-11-2024
Rating, %:100
Rated by:6
Plugin URI:https://gti.co.jp/throws-spam-away/
Total downloads:321 805
Active installs:20 000+
plugin download
Click to start download

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

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

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

 記事のタイトルを利用して「日本語を含むこと」の条件を回避するふとどきものを排除するため
 「タイトルの文字列はカウントしない」機能を作りました。

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

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

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

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

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

 【拒否リスト】
  拒否リストに登録したIPアドレスからの投稿をスパム処理します。

 【許可リスト】
  許可リストに登録したIPアドレスからの投稿はすべてのフィルタを通しませんので優先的に通常コメントとしてノーチェックで投稿処理がなされます。
※許可リストが一番強力にしてありますので、このIPアドレスがAkismetで捉えられていてもブロック対象だったとしても優先で通過させます。

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

IPアドレスの指定「ブロックリスト」「許可リスト」共に「改行」区切りで複数入力できますが、「192.168.1.0/24」のようにIPアドレスの範囲指定も可能です。
※例:192.168.0.1,192.168.1.0/24,69.208.0.0/16 と指定した場合
 [192.168.0.1]と[192.168.1.0 ~ 192.168.1.255]と[69.208.0.0 ~ 69.208.255.255]のIPアドレスを拒否(または優先通過)対象とします。

・スパムフィルタによる判定
 このプラグインにて「スパムフィルタ」として利用させて頂いておりました「スパムちゃんぷるー(ベータ)」http://spam-champuru.livedoor.com/dnsbl/
 ですが、「2013年5月31日を持ちましてサービスを終了させていただくことになりました。」というアナウンスを受けながらも
 (参考URL:http://blog.livedoor.jp/edge_labs/archives/1791613.html )現在まで利用させて頂いてまいりました。
 ですが、2014年の締めくくりとしてこのままXデーを迎えるわけにもいかないという判断でこのスパムフィルタを組み合わせられるように構築しなおしました。
 選択肢は「bsb.spamlookup.net, bsb.empty.us, list.dsbl.org, all.rbl.jp」から自由に選択出来、プラスご自由に記入出来るように入力欄を設けました。
 これらの「選択肢」「自由記入欄」はリストとしてミックスされフィルタとして利用することになります。
 ※そのため、数が多いとその分、待ち時間・トラフィックが大きくなることはご注意ください。
 ※利用できる間は「dnsbl.spam-champuru.livedoor.com」も設定することは可能です。
 最後に「すぱむちゃんぷるー」を利用させていただきまして大変ありがとうございました。

 設定にてON/OFF出来ます。

○スパムデータベースでスパム投稿の増減を確認出来ます。

スパムデータベースに保持された投稿がどこのIPアドレスから行われたものかを知るための WHOIS情報 リンクがあります。
この「WHOIS情報」リンクは ARIN ( https://www.arin.net/ ) を利用しています。

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

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

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

【スパム判定されたコメントは「スパムデータ」の「投稿内容の判定」一覧から確認出来ます】
確認したいスパム判定コメントの「内容確認」またはエラー内容・IPアドレスをクリックするとスパム判定されたコメントの内容を確認出来ます。
同一IPアドレスからのスパム判定コメントが複数ある場合は最新のコメントのみが表示されます。
コメント内容を表示し判定が誤っている場合は「スパム判定を解除」ボタンを押すことでスパム判定を解除出来ます。
スパム判定を解除されたコメントはスパムデータから削除されます。

— これまでの変更点について
※ バージョンの 第4位はWordPressやPHPのバージョンアップの確認を行った際に変更しています。機能変更はありません。
・バージョン 3.6
スパムコメントが保存される際の投稿日時を修正。
設定項目の保存時に発生するエラーを修正。
・バージョン 3.5.1
コメントに登録したメール、URLを取得できていない不具合を修正。
・バージョン 3.5
スパムデータベースから表示したスパム情報をコメントとして登録する機能を追加。
コメントとして登録したスパム情報はスパムデータベースから削除されます。

・バージョン 3.4.7
管理画面の見栄えを変更

・バージョン 3.4.6
設定値のテキストエリア属性であるフィールドにも
sanitize_text_field を適用していたため、改行がスペースに置き換わってしまう事態が発生。
sanitize_textarea_field に変更した。
改行がスペースになってしまった方はお手数ですが、改行に戻して設定保存しなおしてくださいますようお願いいたします。
具体的には IPアドレスによる制御の無視対象IPリスト群、 IP制御免除許可リスト群、 メモ になります。

・バージョン 3.4.5
3.2.5 で変更したスパムデータベースのテーブル存在確認方法を再変更。
スパムデータベーステーブル作成タイミングを変更。

・バージョン 3.4.4
スパムデータベースの詳細データ表示出力時のサニタイズ強化。

・バージョン 3.4.3
スパムデータベースでデータを見た際に表示される
投稿元IPアドレスの WHOIS のリンク先URLが ARIN であることを明示。

・バージョン 3.4.2
出力パラメータのサニタイズ強化,第三弾。

・バージョン 3.4.1
各種定数の名称変更。
入出力パラメータのサニタイズ強化,第二弾。

・バージョン 3.4
WordPress 6.0 対応確認
各設定値のサニタイズを強化

・バージョン 3.3.2
変数の初期化漏れを修正。

・バージョン 3.3.1
スパムコメント削除フォーム CSRF対策
「コメントをすべて削除」機能削除

・バージョン 3.3
スパム防止メッセージを 送信ボタン上にも置けるように選択肢追加

・バージョン 3.2.6
WordPress5.9 対応確認
コード見直し

・バージョン 3.2.5
スパムデータ削除時のDELETE発行処理を修正
テーブル存在確認方法を変更

・バージョン 3.2.4
スパムデータ削除時のDELETE発行処理を改修

・バージョン 3.2.2, 3.2.3
テンプレートの作りによって JavaScript エラーがあったため修正

・バージョン 3.2.1
テーマによって JavaScript エラーがあったため修正

・バージョン 3.2
jQuery で処理していた部分を JavaScript に書き換え。
pre_comment_on_post から preprocess_comment にて処理を行うように変更
IP拒否リスト、許可リスト の不具合を修正

・バージョン 3.1.4
表記の変更を行いました。

・バージョン 3.1.3
WordPress5.4 動作確認
PHP7.4 対応確認

・バージョン 3.1.2
throws_spam_away.class.php を単体利用した際に出力される Warningを修正

・バージョン 3.1.1
PHP7.3までの対応

・バージョン 3.0
スパムコメントの一括削除機能

・バージョン 2.9
国際化対応
コメントバリデーション部分にapply_filters 2つ追加

$result_valid = apply_filters( ‘tsa_validate_comment’,
$this->validate_comment(
$author,
$comment,
array(
‘post_id’ => $post_id,
‘tsa_on_flg’ => $tsa_on_flg
)
), $author, $comment, $post_id, $tsa_on_flg );

return apply_filters( ‘tsa_validate_comment_result’, $result_valid );

バリデーション方法追加または変更可能にし
バリデーション結果自体も変更可能にしました。

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

・バージョン 2.8.1
2016/5/14
許可リストIPアドレスのチェックメソッドの不具合を修正しました。

・バージョン 2.8
2016/5/2
許可リスト登録IPアドレスだけを許可するフラグを追加
このフラグが「する」になっている場合は・・・
  許可リストに登録したIPアドレスのみ許可するフラグをチェックすると許可リスト登録IP以外は無視されるようになります。
  このフラグが付いている場合は本来ノーチェックだった許可リストへIPアドレスチェック以外が行われるようになります。
  このバージョンでは許可リストをトラックバックには適用しておりません。

・バージョン 2.7.1
2015/11/16
スパム判定の初期値設定を判定メソッド内部に移動。
外部からの利用時にThrows SPAM Away 側の設定が活用できるようにした。
mb_split 関数を explode に変更

・バージョン 2.7
2015/10/24
スパム判定メソッドを整理し外部から利用できるようにした。

・バージョン 2.6.10
管理画面レイアウト崩れ修正

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

・バージョン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
「日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)」の文言表示する際の表示位置をフォーム内部の「送信」ボタン上かフォームの下に設置出来るように変更。
この文言は前のバージョンまでは
「 <div id=”throwsSpamAway”>日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)</div>」
と表示されるようにしておりましたが、この「div」タグを「p」タグに変更。
また、「コメント欄の下に表示される注意文言」を空白にした場合はタグ自体が挿入されないようにしました。
どうしても崩れてしまう方は注意文言を空白にして更新するようお願いいたします。
※WordPress3.6以降のWordPressテーマ「Twenty Thirteen」で表示が崩れる事象が起きているための対策です。ご迷惑をお掛けしました。大変申し訳ありません。

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

制作:佐藤 毅(さとう たけし) 福岡のシステム開発 ホームページ制作 株式会社ジーティーアイ代表

Arbitrary section

A brief Markdown Example


FAQ
ChangeLog