前回、対策1として日本語の扱える人の低俗なコメントへの対策を施しましたが(対策と呼べるほどのものではありませんでしたが)、今回はもう一つの困ったチャン、いわゆるスパム投稿について対策を取ろうと思います。
これらスパム投稿に対しては、実はakismetがいい仕事をしてくれているのでこんな状況になっています。
適切に振り分けられたスパムはこの時点で111件(昨日あたりまでで大体101件くらいでしたから、1日10件程度ですかね?)。
こうしてきちんと振り分けられているので、実際にコメントとしてスパムが投稿されることは(まず)ないのですが、今回はこれらスパムを「投稿されなくする」ことを目的として対策を練ってみたいと思います。
さて、実際にうちに投稿されるスパムですが、そのほとんどがこういう類のもの。
無意味なアルファベットの文字列で構成された(と思われる)アルファベットだけの投稿、つまり英語だけで構成されている投稿です。だからと言って必ずしも英語圏を含む海外からのアクセスとは限らないわけですが・・・。
ところで、「ほとんど」というのは、幾らかは次のようなスパム投稿があるから。
実は先ごろまではこうした日本語のスパムがかなりあったのですが、今の所この手のスパム投稿はほとんど来なくなっています。
これらをほぼほぼ排除できているのは、多分これらの投稿のアクセス元がほとんど中国(CNドメイン)からで、中国をはじめ、スパムの大元である韓国、北朝鮮、ロシア、ウクライナからのアクセスを現在firewallスクリプトによってiptablesでシャットアウトしているからだと推測しています(詳細な説明はこことここに置いてあります)。
まれにfirewallををすり抜けて投稿されてしまうのは、おそらくipアドレスの割当更新のタイミングとうちのfirewallスクリプトのipアドレス割当表取得のタイミング(あるいは割当表が作成されるタイミング)とのタイムラグによると思われるので、もし今後これらのスパムが増えてくるようならfirewallスクリプトの実行頻度を上げることでより効果的な対応ができそう。
したがって、今回の対策のターゲットは英語だけで投稿されるスパムコメントに絞ることにするわけです。
そこで早速google先生にいい方法がないか尋ねたところ、こちらのサイトを案内されました。
そのページで紹介されていた方法は、「投稿文に日本語が含まれないものは投稿すらされずスルーするプラグイン」を導入する、というもの。
なるほど、これなら僕の今回の対策にうってつけです。というのも、この「スルーする」というのが、投稿処理自体がされないということであるらしいから。
というわけで、詳細な手順はリンク先にあるのですが、備忘録的にうちでもまとめておきます。
まずはこの「投稿文に日本語が含まれないものは投稿すらされずスルーするプラグイン」ですが、それはThrows SPAM Awayというプラグイン。
はやる気持ちを抑えつつ(?)、早速導入してみましょう!
WordPressのダッシュボードから、「プラグイン」メニューをクリックし、検索ウィンドウを使って「Throws SPAM Away」を探します。この通り入れれば一発でヒットします。
うちで現在稼働中のWordPress 4.6.1–jaではテストされていないというのがちょっと不安ですが、まぁ大丈夫でしょう(ダメならプラグインを停止すればいいだけのはずですし)。
というわけで、右上の「今すぐインストール」ボタンをクリックします。
無事にインストールプロセスがスタートし・・・。
インストールが完了しました。右上に「有効化」ボタンがありますが、念のためダッシュボード上の「プラグイン」メニューを確認しましょう。
その中にThrows SPAM AwayがあればOKです。ここにも「有効化」がありますから、それをクリックしてプラグインを有効にします。
有効にすると、ダッシュボードのメニューに「Throws SPAM Away」ができます。ここからこのプラグインの各種設定を行うことができます。
余談ですが、こういうのは、例えばダッシュボードの「設定」メニュー下に配置する、などの統一性が欲しいですよね・・・(^_^;;
今は細かな設定をいじらずに、デフォルトのままで運用を開始します。デフォルトの設定が「日本語を含まない投稿をスルーすること」なのですから、これで十分に僕の目的に合致しますし、もしその状態で問題が出るようなら改めて設定を見直せばいいわけですから。
早速Throws SPAM Awayを有効にしてからコメント投稿欄を(一度ログアウトして)確認すると・・・。
そこにはちゃんと「日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)」という注意書きが表示されていました。
ちなみに、Throws SPAM Awayをインストール・有効化する前のコメント投稿欄はこんな感じ。
・・・って、当たり前ですね(笑)
なお、「名前」と「メールアドレス」に*が付いているのは、前回の対策によるものです。スパム投稿はこれらも自動的に入力するので、スパム投稿にはこうした制限は効果がないんですよねー・・・。
これでThrows SPAM Awayプラグインが稼働していることが確認できましたので、とりあえずakismetが避けてくれたスパム投稿を一度全て削除し、新たなスパムが投稿されないかどうかを様子見することにします。
はてさて、どういう結果になるのか、今から楽しみです♪