Throws SPAM Away でスパム対策を行っている方からこんなメッセージをいただきました。
「拒否リストに入れていても許可されることがある」
…最初はログインしている状態ではないか?と想像したんです。
そこでいろいろ試したんですが、問題なく…
その旨、返信したんですが気になって調査続けていました。
その間、何度かメッセージいただいておりまして…申し訳ない。
すると、変な挙動が…もしかして…
コードを読み返すと特定の条件ではIP拒否リストにあっても通過することがわかりました。
不具合改修
コードを読み、拒否リストに入っていることはわかっていつつ、処理を続行していた箇所を特定。
そこを必ず捕まえてスパム扱いするようにしました。
これによる不具合、例えばこの処理をうまく利用していた方がいらっしゃったら…申し訳ないのですが、変更してしまいました。
※たぶん読み込んだ限り不具合以外のなにものでもなかったので大丈夫だと思いますが。
バージョン 3.2 アップデート内容
jQuery で処理していた部分を JavaScript に書き換え。
pre_comment_on_post から preprocess_comment にて処理を行うように変更
IP拒否リスト、許可リスト の不具合を修正
https://wordpress.org/plugins/throws-spam-away/
拒否リスト・許可リスト以外の更新は下記の通り。
今まで jQuery で行っていた 記事表示時の JavaScript をjQueryを利用しないものに書き換えました。
フック pre_comment_on_post を利用していた処理を
preprocess_comment で処理するようにしました。
以前よりカチッと動くような気がします(…作者しかわからない感覚かもしれないです)
よろしくお願いいたします!
Qiita の投稿もアップデートしました
Qiita に投稿していた Contact Form 7 に Throws SPAM Away のバリデーションを利用する方法も更新しました。
https://qiita.com/gtijp/items/e1e52c631f62c9ce4224
以前のものだと、IP拒否リスト(旧 IPブラックリスト)とIP許可リスト(旧 IPホワイトリスト)を利用した判定がどっちも使っていたため、特殊なことになっていたためです。
わかりやすく 拒否リストだけ使うサンプルにしました。
今後もよろしくお願いいたします!!