wordpress セキュリティ対策 不正ログイン、スパムなどについて

2020年1月2日

wordpressにおいては、様々なスパムや不正ログインなどの迷惑行為を受けることが多いです。

 

特に、初心者の方にとっては困惑させられるでしょう。私もwordpressを始めたばかりの頃は、かなり惑わされました。

スパムコメントの場合、英語がほとんどです。最初は、外国の方からも読んでもらえているんだなあ、と思っていました(笑)

wordpressにおけるスパムアクセス
プラグイン「slimstat」でのアクセス解析。アメリカからのアクセスであり、スパムを疑ったが、こちらはアドセンスのクローラーによるもの。スパムかそうでないかの見分け方については下記の記事を参照。

 

また、下記の記事では、スパムコメント対策のプラグインについても紹介しております。

今回は、wordpressのセキュリティ対策について紹介します。不正ログインやスパムコメントを中心に書いていこうと思います。

不正ログイン、不正アクセス対策について

まずは、不正ログイン、不正アクセス対策について説明します。

 

アクセス解析(私が使っているプラグインは「slimstat」です。ipアドレスを取得できるので便利です。)などで、ログインページへのアクセスがやたら多かったり、管理画面のページへのアクセスが多い場合は、要注意です。

 

定期的なパスワードの変更や、パスワードを複雑にすることも大事ですが、悪意のあるアクセスがたくさんあるというのは、気分の良いものではないです。

 

場合によっては不正にアクセスされる場合もあります。不正アクセスされれば、サイトが乗っ取られて勝手に広告を貼られたり、犯罪に利用される可能性があります。そのため、対策はとるべきです。

 

今回は、プラグインを使った方法を紹介します。

「IP Geo Block」の使い方

対策には「IP Geo Block」というプラグインを使います。

 

このプラグイン一つで、海外からのアクセス制限、記事ページも含めた全ページで特定のIPアドレスからのアクセスを遮断できます。また、特定のIPアドレス、特定の国からのみアクセスを許可することもできます。

国コードのブラックリスト、ホワイトリスト

IP geo block
自分のIPアドレスをブロックしないように注意。

「国コードのブラックリスト」は、そこに国コード(日本ならjp、アメリカならus)を入力すると、その国だけがブロックされます。

逆に、「国コードのホワイトリスト」は国コードを入力すると、その国以外はブロックされます。

尚、この設定は下のそれぞれの項目の「国コードで遮断」にチェックを入れると有効になります。

国コードよりも優先してアクセスをブロック、許可するIPアドレス

国コードでブロックまたは許可した国からでも、特定のIPアドレスのみ許可又はブロックできます。この設定は全ページ(ログインページや一般公開ページなど全て)に反映されます。

 

海外旅行に行っている時などに滞在先の国をブロックしていても、滞在先のwifiのIPアドレスのみを許可することで、記事の編集や作成ができます。

 

ログインフォームへのアクセスの遮断

ログイン・フォームへのアクセスの遮断についてです。

不正ログインの原因にもなるので、基本的には日本以外からのアクセスは許可すべきではないです。

 

IPアドレス当たりのログイン試行可能回数は5〜10回ぐらいが妥当です。

あまり低すぎると、自分がアクセスできなくなったり、複数のタブからログインすることができなくなることがあります。

 

尚、私が使っているさくらインターネットサーバでは、ログインページなどへの海外からのアクセスを遮断する機能が付いています。皆様がお使いのサーバにもそのような機能があれば是非使いましょう。

レスポンスコードとレスポンスメッセージ

レスポンスメッセージはデフォルトの英語のものでも良いです。しかし、日本からのアクセスがたまたま遮断された時などのことを考えると、日本語にしておくのが無難です。

 

スパムの外国人(そもそも手動ではないかも)相手にわざわざ文章を用意する必要はないです。それよりも、日本人又は日本語のわかる人が、記事を読もうとしたのに、何らかの理由でブロックしてしまった時の対策をすべきです。

 

私のレスポンスメッセージのおすすめは「メンテナンス中です」「サーバーエラー」などです。これなら誤ってブロックされても不快な思いはしませんね。

 

尚、レスポンスコードは

「200OK」
「301moved permanently」
「302 found」
「303 sea other」
「307 temporary redirect」
「400 bad request 」
「403 forbidden」
「404 not found」
「406 not acceptable」
「410 gone」
「500 internal server error」
「503 service unavailable」

上記の12種類あります。よくわからない方は、デフォルトのままでも良いです。

レスポンスメッセージを「アクセスが許可されていません」にするなら、「403 forbidden」、「サーバーエラー」にするなら、「500 internal server error」、「メンテナンス中」とするのであれば、「503 service unavailable」にすると自然です。

一般公開ページのアクセス制限

海外からのスパムアクセスが多い場合は遮断すると良いです。外国人向けや、外国に住む日本人向けの記事ではない限り、遮断してもほぼ問題は無いです。

 

ただ、検索エンジンからのアクセスは許可するようにホワイトリストにそのIPアドレスを追加する必要があります。

「検索エンジン名(googleなど)+bot+IPアドレス(「ホスト名」、「ユーザーエージェント」でもOK)」で検索すれば出てきます。

 

この他にも、海外からのコメントをブロックすることもできます。

下記の記事では、今回とは別のプラグインを使ったアクセス制限方法を紹介しております。

まとめ

今回は、wordpressにおけるセキュリティ対策について紹介しました。

 

wordpressは何かとスパムが多いです、ずっと日本の無料ブログを使っていた人からすると、あまり馴染みがないかもしれません。

 

しかし、放っておくと不正ログインなどの被害を受ける可能性があります。また、スパムアクセスの場合、「アクセスが増えるだけなら良いのでは」と思う人もいるでしょうが、過度なスパムアクセスは、サーバーへの負担(サーバーエラーの原因にもなり、正規のユーザーのアクセスを妨げる可能性がある)が増したり、SEO的にも悪影響をもたらす可能性があります。

 

そのため、最低でもログインフォームは海外からアクセスできないようにしましょう。一般公開ページも海外からのスパムアクセスが酷ければ、遮断した方が良いです。

実際にブロックされた統計
実際にブロックされた回数や国別の統計。常にスパムの脅威にさらされていることがわかる。

ただ、もちろんパスワードを複雑にすることや、こまめに変更する事も大切です。また、アクセス解析やIP GEO Blockの統計を定期的に見て、不自然なアクセスがないか確認することも重要です。