昨夜からこのようなスパムがきていたらしく気づいたらコメント数が6万以上来ていました。
調べてみるとbbpressで作成したフォーラムにコメントとして書かれまくってた様子。
放置しても邪魔になるので一括で消したいなと思いつつ、一つ一つ削除するのは面倒だなと思っていたので、データベースから削除する方法を参考にして一括削除をしました。
参考サイトはこちら↓
1.データベースのバックアップをとる。
phpmyadminを利用してデータベースを管理していたので、export機能を使って全体のバックアップをとりました。
2.wp1_postmetaを削除する。
データベースを見てみるとwp1_postmetaとwp1_postsの量が圧倒的に増えています。
そこにスパム投稿とそれに関する情報が入ってそうなので、そこを調べていきます。
wp1_postmetaの中身を見てみるとどれがフォーラムに投稿されたデータかを判別できないので、wp1_postsと結合させて調べます。
フォーラムへの投稿を削除したいので、guidの列に”forums"が含まれている部分のみを検索しました。
今回自分の場合は、直近3日間のフォーラムへのコメントが全てスパムだったので、日付と"forums”のみで判別しています。
———————————————SERECT——————————————— SELECT * FROM `wp1_postmeta` INNER JOIN wp1_posts ON wp1_postmeta.post_id = wp1_posts.ID WHERE post_date LIKE "2018-12-17%" AND guid LIKE "%forums%" ———————————————DELETE——————————————— DELETE `wp1_postmeta` FROM `wp1_postmeta` INNER JOIN wp1_posts ON wp1_postmeta.post_id = wp1_posts.ID WHERE post_date LIKE "2018-12-18%" AND guid LIKE "%forums%"
“SELECT"で検索して値があるか確認し、”DELETE"で削除します。
3.wp1_postsも削除する。
wp1_postmetaと同じように日付とguidの文字列に”forums”が含まれていたら抽出、ざっくり確認したら削除という手順で実行します。
———————————————SERECT——————————————— SELECT * FROM `wp1_posts` WHERE post_date LIKE "2018-12-18%" AND guid LIKE "%forums%” ———————————————DELETE——————————————— DELETE `wp1_posts` FROM `wp1_posts` WHERE post_date LIKE "2018-12-18%" AND guid LIKE "%forums%"
ぼくは3日分のコメントが溜まっていたので、2と3の作業を3回実行しました。
4.スパム対策
今回のスパムは一旦削除することができたので、次から来ないように対策をします。
スパム対策にはakismetを使用しました。
それと今回はコメントに大量のスパムが投稿され続けてしまったので、連続投稿の間隔を10秒→1分に変更しました。
参考にしたリンクはこちらです。
akismetの設定
bbpressの設定
wordpressで掲示板を作るならbbpress!使い方の完全マニュアル
この記事もspam対策にはよさそうだったので、akismetで防げない場合は試してみたい。
感想
初めから対策しとけよって感じですね、、、 bbpressを使っての対策であれば、投稿スロットル時間の間隔を長くすること。 Akismetは使っていたけど、もうちょいちゃんとするならreCapthchaとかも使った方がいいかなと思いました。