=== Plugin Name ===
Contributors: tsato
Donate link: https://www.gti.co.jp/throws-spam-away
Tags: comments, spam
Requires at least: 3.1
Tested up to: 5.5.1
Stable tag: 3.2.3
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

スパムコメントを無視して何もなかったように捨てる強力スパム対策プラグイン

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

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

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

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

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

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

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

・ダミー項目による判定（スパムロボット対策）
　空のダミーフィールドを生成し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アドレスはスパム投稿一覧よりボタンひとつで削除出来ます。

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

-- これまでの変更点について
・バージョン 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 ２つ追加

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

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

・バージョン2.4
 スパム情報収集機能を「スパムコメント情報を保存する」にした場合に限り、「一定時間内スパム認定機能」が作動するように出来ます。
 この「○」を設定します→《○分以内に○回スパムとなったら○分間、当該IPからのコメントはスパム扱いする設定》
  例えば、「１０分以内に２回スパムとなったら１０分間、当該IPからのコメントはスパム扱いする」とした場合は
  過去（今から）１０分前から今まで２回スパム扱いとなったIPからの投稿は３回目以降スパム扱いとなります。
  そのため、１０分以内に３回目のスパムを作ってしまったためそこから１０分以上経過しないとずっとスパム扱いになってしまいます。
  今までのように「これは・・・・ダメ」「これは・・・・ダメ」「これは・・・・行けた！」「よっしゃーー！突っ込めー！」という風にはできなくなるということです。
  上記の例はデフォルト値ですが、「１時間（60分）以内に３回スパムになったら２４時間（1440分）スパム扱い」という設定の場合は
  24時間以内に3回スパムがあったら・・・という設定とほぼ同等（完全に同等ではありませんが・・・）ですので
  24時間の方に合わせる形で24時間以内のスパム回数を算出するようにしています。（今後見直すかもしれません）
  あまり長い時間を指定しますとコメント欄への反映が遅くなりますので気をつけてください。
  ５～１０分程度を推奨します。

 スパム投稿の一覧を見やすくしました。
 　これまでスパム投稿情報の表示が日付が一覧で縦表示していたため見づらいものとなっておりました。
 　今回、横軸にその情報を追加しました。
 　また、スパム投稿リストの表示も改良し、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）を超えて包含する場合にエラーとする機能を付けました。
 導入後すぐに機能しはじめます。制限数の増減も行えます。
 <strong>（注意！）不要な方は設定の変更でこの機能をOFFにしてください</strong>
 ※インストールしただけで最大限活用できるように初期設定値を設定いたしました。日本語スパム投稿（おもにリンクを多数掲載するもの）に対抗するための追加機能です。ご理解のほど、よろしくお願いします。

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

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

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

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

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

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


制作：佐藤　毅（さとう　たけし） <a href="https://gti.co.jp/" target="_blank">福岡のシステム開発 ホームページ制作</a> 株式会社ジーティーアイ代表

== Installation ==

インストールする場合は、ダッシュボードの「プラグイン」メニューから
「新規追加」をクリックして、「キーワード」に「Throws SPAM Away」と入力し「プラグインの検索」を行って
結果に現れた「Throws SPAM Away」をインストールしてください。

または、ダウンロードした「throws-spam-away」フォルダを
FTPなどで　/wp-content/plugins/ ディレクトリにアップロードし
「プラグイン」メニューより「Throws SPAM Away」を「有効化」してご利用ください。

アップデートの際は、一度設定画面にアクセスし「変更を保存」ボタンを押していただけますと確実です。

e.g.

1. Upload `throws-spam-away` to the `/wp-content/plugins/` directory
2. Activate the plugin through the 'Plugins' menu in WordPress

== Frequently Asked Questions ==
質問やご要望はSupportまたは弊社お問い合わせ（https://gti.co.jp/）へお願いします！

== Screenshots ==

== Changelog ==

= 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 =
WordPress 5.4 動作確認
PHP7.4 対応確認

= 3.1.2 =
throws_spam_away.class.php を単体利用した際に出力される Warningを修正

= 3.1.1 =
PHP7.3までの対応

= 3.0.2 =
comments_open() を $post->comment_status の判定に置き換え

= 3.0 =
・バージョン 3.0
 "spam" が付加されているコメントの一括削除機能追加

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

$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 =
　ロードバランサ経由のクライアント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
　スパムフィルタを自身で設定できるように変更しました。
　初期設定は「スパムフィルタ：OFF」に変更しました。
　また、使用する際の初期有効値は「bsb.spamlookup.net」のみです。
　選択肢「bsb.spamlookup.net, bsb.empty.us, list.dsbl.org, all.rbl.jp」
　及び自由記入欄にてカンマ区切りでサービスのURLを入力できます。
　※記述に誤りがありますと通信が返ってこないためコメント出来ない可能性がありますのでご注意ください。
　※スパムフィルタが変更できることによって現在まで「スパム拒否リスト」でエラーとなっていた投稿に対し
　　その時点では有効だったフィルタが閲覧時に入れ替えがあると「スパムフィルター：未検出」となる場合があります。
　　ご了承ください。

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

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

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

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

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

= 2.6.3 =
　スパムデータベースの表示速度を向上するため
　スパムコメントの表示を個別画面へ移動（エラーをクリック）

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

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

= 2.6.2 =
　IE8でスクリプトエラーが発生していたため、修正しました。
　初期設定値を最適化しました。デフォルトで効果的なスパム対策を提供します。

= 2.6 =
　コメント欄に隠しフィールドを生成しその項目に入力があればスパム判定する機能を追加。
　スパムデータベースに[error_type]を追加。なにが原因でスパム判定されたかとスパム投稿の内容をスパムデータベースで保存（255バイトずつ）
　スパム一覧に少し表示するようにしました。

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

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

= 2.4 =
制御IPアドレスの入力方式を「カンマ区切り」から「改行」へ変更しました。
従来のデータ（カンマ区切り）は自動的に改行区切りに変更されます。

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

スパムコメント情報のIP一覧からIPアドレスをクリックした際に表示していた情報を下記のようにしました。
・IPアドレス
・ホスト名が特定出来た場合はホスト名
・このIPアドレスからの最終投稿日時
・このIPアドレスからスパム投稿を受けた記事（リンク）

スパム情報収集機能を「スパムコメント情報を保存する」にした場合に限り、「一定時間内スパム認定機能」が作動するように出来ます。
  この「○」を設定します→《○分以内に○回スパムとなったら○分間、当該IPからのコメントはスパム扱いする設定》
  例えば、「１０分以内に２回スパムとなったら１０分間、当該IPからのコメントはスパム扱いする」とした場合は
  過去（今から）１０分前から今まで２回スパム扱いとなったIPからの投稿は３回目以降スパム扱いとなります。
  そのため、１０分以内に３回目のスパムを作ってしまったためそこから１０分以上経過しないとずっとスパム扱いになってしまいます。
  今までのように「これは・・・・ダメ」「これは・・・・ダメ」「これは・・・・行けた！」「よっしゃーー！突っ込めー！」という風にはできなくなるということです。
  上記の例はデフォルト値ですが、「１時間（60分）以内に３回スパムになったら２４時間（1440分）スパム扱い」という設定の場合は
  24時間以内に3回スパムがあったら・・・という設定とほぼ同等（完全に同等ではありませんが・・・）ですので
  24時間の方に合わせる形で24時間以内のスパム回数を算出するようにしています。（今後見直すかもしれません）
  あまり長い時間を指定しますとコメント欄への反映が遅くなりますので気をつけてください。
  ５～１０分程度を推奨します。

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


= 2.3.1, 2.3.2, 2.3.3 =
不具合の修正をしました。ご迷惑をおかけいたしまして申し訳ありません。
テーブルに書き込まれない不具合、テーブル読み込みの不具合を修正しました。

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

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

= 2.2 =
URL文字列（単純に'http'文字列）が許容数（初期設定３つまで）を超えて包含される場合エラーとする機能を追加
制限するかどうかと許容数の設定及びエラー文言を設定可能。

<strong>（注意！）導入後すぐに機能しはじめます。不要な方は設定の変更でこの機能をOFFにしてください</strong>
　※インストールしただけで最大限活用できるように初期設定値を設定いたしました。日本語スパム投稿（おもにリンクを多数掲載するもの）に対抗するための追加機能です。ご理解のほど、よろしくお願いします。

= 2.1.1 =
一部レンタルサーバー等の設定によってコメント投稿後エラーまたは白画面になってしまう不具合を修正
　※確認したレンタルサーバー（さくらレンタルサーバー）※コメント欄に独自修正を行うような特殊な条件により発生する模様
　これまで「comment_form」にて処理していた動作を「comment_form_after」にて処理するよう変更しました。

= 2.1 =
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アドレスを拒否対象とします。

= 2.0 =
下記の機能を追加しました。
・コメント投稿者のIPアドレスが以前スパム扱いとなったものと同じIPアドレスからの投稿であれば無視するようにする機能
・任意のIPアドレスからの投稿を無視するようにする機能

= 1.7 =
エラー文言画面から戻ってくる時間の設定が「0」だった場合は一切エラー画面を介さずリダイレクトするようにしました。
より「何もなかった感」があると思います。（スパム投稿者はなにが起きたかわからない・・・ではなくなにごとも起きてないと思うはず・・・）

= 1.6.1 =
日本語文字が何文字以上入っていないとNGかのしきい値とちらっと現れるエラー文言画面から元の記事に戻ってくる時間の設定が
「ミリ秒」だったのをわかりやすいように「秒」設定に変更します。

～現在、この設定をしている方へ！！！～
今までの設定値が有効の場合に１０００秒以上待つことになりかねないため変数名を変更しました。
再度設定を、「秒単位」にてお願い致します。

= 1.6 =
必須キーワードの設定ができるようにしました。※複数指定可能
これにより漢字などが入り込んでなんとか通ってきた言語に対しても「ひらがな」等の指定によりより一層厳しくチェックできるようになります。

= 1.5 =
トラックバック・ピンバックに対しても同様のチェックを行う機能をつけました。
（オン・オフ設定出来ます。）
また、その際、トラックバック記事の中に自サイトのURLが含まれているかどうかをチェックすることも出来るようにしています。
（オン・オフ設定出来ます。）
※トラックバックに対しては使用しないで従来通りご利用いただけます。
※インストール時はトラックバック記事には適用しない設定になっておりますのでご利用時には「設定」メニューより「Throws SPAM Away」をクリックしていただき
　「上記設定をトラックバック記事にも採用する」を「する」に
　「トラックバック記事にも採用する場合、ついでにこちらのURLが含まれているか判断する」を適宜　変更してご使用ください。

= 1.4.2 =
バグ修正

= 1.4.1 =
バグ修正

= 1.4 =
機能のオン・オフをつけました。
NGキーワードの設定が出来るようになりました。
日本語でも他の言語でもNGキーワードが入っていれば同様に処理するようにしました。
NGキーワードに引っかかってしまった場合のエラー文言は別途設定できます。

= 1.3 =
コメント欄下の注意文言及びエラー文言を設定可能にしました。

= 1.2.1 =
バージョン表記修正。機能は変更ありません。

= 1.2 =
設定画面を設けました。こちらで、日本語文字が何文字以上入っていないとNGかのしきい値とちらっと現れるエラー文言画面から元の記事に戻ってくる時間（ミリ秒）を設定することが出来ます。

= 1.1 =
マルチバイト文字が存在していても日本語文字列を含まないとNGとするよう
正規表現を入れて精査するように修正

= 1.0 =
新規作成

== Upgrade Notice ==
= 2.0 =
以前スパム扱いとなったコメントの投稿IPアドレスからの投稿を無視機能追加
任意IPアドレスからの投稿を無視機能追加

= 1.4 =
機能のオン・オフ設定追加
NGキーワード（日本語及びその他言語）の設定による無視機能追加

= 1.3 =
コメント欄下の注意文言及びエラー文言を設定可能にしました。

= 1.2.1 =
バージョン表記修正

= 1.2 =
日本語が1文字でも含まれると通ってしまうのを何文字以上含まれていないといけないのかを設定出来るようにしました。

= 1.1 =
正規表現を使いロシア語や他のマルチバイト文字列を使用する言語からの攻撃に対応

= 1.0 =
とりあえず作りました！
== Arbitrary section ==

== A brief Markdown Example ==