WordPressサイトのセキュリティ対策 – 最低限設定しておきたい5つ

Development Tips

WordPressサイトのセキュリティ対策

WordPressで最低限おこなっておきたいセキュリティ対策について紹介します。難しい設定はなくWordPress初心者向きの内容です。ただ、かならず対応しておきたいものばかりなので、WordPress実装の際にチェックすることをおすすめします。

01, WordPress本体やWordPressプラグイン、WordPressテーマの更新

WordPressの本体やプラグイン、テーマを最新状態に保つのは基本です。どこでも言われていることですが、できていないサイトを散見します。定期的にアップデートし、最新状態に保つことが必要です。

WprdPressでは、2013年10月にリリースされたバージョン3.7からWordPressの自動アップデートが実装されました。これにより最新状態を常に維持することが可能です。

しかし、安易に自動アップデートを設定することはおすすめしません。WordPressプラグインのアップデート未対応による不具合の不安があります。案件の仕様にあわせて自動か手動かを判断するようにしましょう。もっとも安全なのは制作側がチェックしながら手動アップデートを都度おこなうことです。クライアントへの周知が必要となりますね。

また、WordPressプラグインは数年以上更新されていないものもあるので、利用には注意が必要です。プラグインにもよりますが、私は1年以上更新されていないものは使わないようにしています。

02, ユーザー名とパスワードを複雑に(記号を多用)

単純ながら効果的なのが、ユーザー名とパスワードを複雑にすること。英数字や記号を不規則に使用するのがポイントです。

例: v8ndNWtpf5HK)upjPNODzFsf

WordPressでは新規ユーザーを作成する際、パスワードを生成してくれるのでそのまま使うこともあります。
他に、以下のようなパスワード生成ツールを使用するのも良いです。

覚えられないからと他サービスのものと統一しがちですが、パスワードマネージャーや1Passwordなどのパスワードツールで管理して、いつでも呼び出せるようにしておきましょう。

03, SiteGuard WP Pluginでセキュリティ対策

WordPressプラグインの多用はできるかぎりしたくないのですが、SiteGuard WP Pluginだけは別です。セキュリティプラグインとして優秀なので、これだけはマストで使用しています。

設定項目は以下。

SiteGuard WP Pluginで設定している項目

ログインページ変更

WordPressの管理画面ログインURLは◯◯◯.com/wp-login.php で、デフォルトのままだと誰でもログインページを閲覧することができてしまいます。管理画面ログインURLの変更を設定することで、別URLに変更されます。任意で好きなURLに設定も可能です。

画像認証

ログインする際に画像認証をつけることができます。これは、ログインページだけではなく、コメントページやパスワード確認ページ、ユーザー登録ページも設定できます。
画像認証は『ひらがな』『英数字』を選べますが、海外からの攻撃を防ぐにはひらがなの方が効果的かと思います。

ログイン詳細エラーメッセージの無効化

WordPress管理画面ログインページでログインエラーになると、デフォルトのままだと何が間違っているのかが表示されます。正規ユーザーとしてはありがたい機能ですが、攻撃してくる側にヒントを与えることになるので、エラーメッセージを無効化し、推測されにくくします。

ログインロック

連続してログインエラーを検出した際に、ログインできなくするログインロック。
『期間』『回数』『ロック時間』を設定できます。私は下記のように、デフォルト設定のままにすることが多いです。

  • 期間:5秒
  • 回数:3回
  • ロック時間:1分

ログインアラート

管理画面にログインした際にメールで通知が届きます。心当たりがない場合は不正にログインされたことになるので早急の対応が必要です。
ちなみに、管理者や正規ユーザーがログインした際にも通知が届きますが、セキュリティの観点からかならず設定しています。

XMLRPC防御

XMLRPC防御は、DDoS攻撃や、ブルートフォースアタックを防御する機能です。
気がついていないだけで意外と攻撃されているようなので、私は常に有効化しています。

ただ、XML-RPCは、WordPress専用のスマホアプリやリモート投稿などを利用する際に必要なので、案件仕様に合わせて設定しましょう。

ユーザー名漏えい防御

WordPressでは、著者ページが存在し、URLにログイン時にも使用するユーザー名が割り当てられています(◯◯◯.com/author/user-name)。
◯◯◯.com/?author=1 で著者ページへリダイレクトされるので、ユーザー名がかんたんに確認されてしまいます。

ユーザー名漏えい防御を適用して、著者ページが表示されないようにします。

更新通知

WordPress本体やWordPressプラグイン、WordPressテーマの更新情報がある際に、メールで通知が届きます。更新を怠るのはセキュリティレベルを下げる大きな要因の一つです。通知が届くよう設定し、常に最新状態を保つようにします。

04, wp-config.phpを1階層上へ

WordPressへの攻撃はさまざまあるようですが、wp-config.phpの読み取りが多くなっているのが現状のようです。

WordPress、テーマ・プラグインの脆弱性として、XSSやSQLインジェクションなど様々なものが見つかっていますが、実際の攻撃としては、ディレクトリトラバーサルによるwp-config.phpの読み取りが非常に多くなっています。(当社調べ)

WordPressの設定ファイルの安全性とディレクトリトラバーサル

データベース情報が記載されたwp-config.php を1階層上に移動させることで、ファイルへアクセスできなくします。特に設定は必要なく、1階層上に移動させるだけです。

ただ、WordPressのセキュリティ設定として『wp-config.phpを1階層上に』が定番のようにありますが、ディレクトリトラバーサル(※)に対しては効果がないとのこと。

※ディレクトリトラバーサル…ファイル名を不正に書き換え、通常アクセスできないファイルやディレクトリの内容を取得する攻撃

合わせて、サーバー側でWAF(ウェブアプリケーションファイアウォール)の設定もします。一般的なレンタルサーバーはほぼ対応しているのでかならず設定しています。

05, 問い合わせフォームにreCAPTCHA導入

迷惑メールが届く原因の一つが、問い合わせフォーム。私も以前よく届いていたのですが、問い合わせフォームにreCAPTCHAを導入したところピタッと止まりました。かならず止まるとは言い切れないのですが、一定の効果はあるようなので設定しています。

Contact Form 7のreCAPTCHA設定方法

WordPress問い合わせプラグインの定番『Contact Form 7』のreCAPTCHA設定方法を紹介します。

ラベルとサイトドメインを入力
2箇所チェックと利用規約の確認
サイトキーとシークレットキーを取得。それぞれクリックでコピー可能
管理画面の『インテグレーション』→『reCAPTCHA』→『インテグレーションのセットアップ』
2つコピペで『変更を保存』をクリックして設定完了

難しいことはありません。Googleアカウントがあればすぐ設定できます。


WordPressサイトリニューアルのご案件をお請けすると、まったく対策されていないサイトを見かけます。今回の内容は初心者でも対応可能なWordPressセキュリティ対策なので、すぐ実装可能です。明日からぜひ対応していきましょう。

Contact

BUILDにご興味をもっていただきありがとうございます。
ウェブデザインやロゴデザイン、その他クリエイティブに関するご相談は、 フォームよりお気軽にご連絡ください。

お問い合わせはこちら