• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer

株式会社ハイファイブクリエイト

東京都を拠点にWebサイト制作やシステム構築、WordPress保守管理やウェブコンサルティングを提供。

  • SERVICE
  • ABOUT
  • WORKS
  • BLOG
  • NEWS
  • CONTACT
ホーム / ブログ / WordPress / WordPressサイトを安全安心に保つために必要なこと

WordPressサイトを安全安心に保つために必要なこと

池田祐太郎 | 2019年10月25日 更新 | 2019年9月1日 公開

WordPressは無料で使えるCMSであり、プラグインという様々な機能を追加するメリットがあるゆえ、オープンソースだから危ないとか、危険なプラグインがある等、ネガティブな面も言われています。今までにあったセキュリティ被害例としてレンタルサーバーのロリポップの脆弱性で8,000サイト以上の大量乗っ取りや、WordPress 4.7.2にREST APIの重大な脆弱性があり10万サイト以上が改ざん被害にあったりしています。

こういった事件があると怖くて使えないと思うのもわかります。しかし、自動車や包丁のように、正しく使い方を守って利用すれば便利で価値のあるツールです。そこで、どのようにすればWordPressサイトを安全に保ち、安全な運用をしていけるかお伝えします。

目次

  • 1 WordPressサイトは危ないか?
    • 1.1 WordPressの脆弱性
  • 2 どんなセキュリティ対策を取ればいい?
    • 2.1 定期的なバックアップ
    • 2.2 使っていないプラグインは削除
    • 2.3 WordPressコアやプラグイン、テーマ等を定期的にアップデート
      • 2.3.1 コアのアップデート
      • 2.3.2 プラグインのアップデート
      • 2.3.3 テーマのアップデート
    • 2.4 セキュリティ対策の強化
      • 2.4.1 WebサイトのSSL化
      • 2.4.2 admin等のユーザー名を利用しない
      • 2.4.3 不要な管理者権限は削除
      • 2.4.4 二段階認証の導入
      • 2.4.5 ログインURLの変更
      • 2.4.6 古いバージョンのPHPやMySQLを使わない
      • 2.4.7 FTPは使わない
    • 2.5 定期的なセキュリティスキャン
    • 2.6 テスト環境の作成
  • 3 なぜWordPressのセキュリティ対策をしないといけないのか

WordPressサイトは危ないか?

危ないか危なくないかという二択であれば危ないです。何の対策もせずにWordPressで構築したサイトは安全ではない可能性が高いかもしれません。ただ、正しく利用することで危険因子を少なくしていくことができます。

WordPressはオープンソースのCMSという性質上、コードが全て公開されています。新しい機能や脆弱性に対応したバージョンが公開されると、WordPressをインストールしているウェブサイトはアップデートできるようになりますが、すべてのコードが公開されているため悪意のあるハッカーが脆弱性をついて改ざんや乗っ取りなどすることができてしまいます。

脆弱性が発見されたら修正されたバージョンが公開されます。そしてまた新たな脆弱性が発見と…いたちごっこです。そのため、利用者ができる一番のセキュリティ対策は常に最新版を使う前提で運用をするべきなのです。

WordPressの脆弱性

WordPressの脆弱性の種類をWP WhiteSecurityから借りました。また、件数が多い順に並べました。

様々な脆弱性の種類。クロスサイトスクリプティングが一番多いのがわかる
  1. クロスサイトスクリプティング(XSS)
  2. SQL インジェクション
  3. ファイルアップロード
  4. クロスサイトリクエストフォージェリ(CSRF)

上位4件で全体の75%程度を占めており、特にクロスサイトスクリプティングとSQLインジェクションが全体の半分の原因です。

こちらも同サイトから拝借したデータですが、侵入口として多いのがプラグインが約半数、ついでWordPressコア、その次にテーマとなっています。

気をつけるべきはプラグインというデータに

ちなみに、日本語でのWordPressの脆弱性は脆弱性対策情報データベースにほぼ毎日WordPressに関しての情報が公開されています。どのような原因にどんな脆弱性があったのかがまとめてあります。

公開されているWordPressの脆弱性。頻繁に更新されている

どんなセキュリティ対策を取ればいい?

それでは、WordPressサイトを安全に保つためにできる対策をご紹介します。あなたのサイトは全部ちゃんとできていますか?大丈夫という場合も、念の為確認しておきましょう。

定期的なバックアップ

まずはバックアップ。これがあればセキュリティ被害にあったとしてもすぐに復旧できます。
WordPressサイトの場合、バックアップに必要なものは大きく分けて2つ。

  1. テーマで利用中のPHPやCSS, JS等を含めたテンプレートファイルや、プラグイン等WordPressデータを含めたWebデータ一式
  2. データベース一式

上記が完全にバックアップされたデータがあれば、同じサーバーの別ディレクトリでも、別サーバーにでも、ローカル環境にでも復元できます。

バックアップはできれば毎日が理想です。もしサイトをあまり更新していない場合は1週間に一度でもいいでしょう。
バックアップ先は同じサーバーではなく外部サーバーが望ましいです。というのは、万が一サーバーに障害発生等によりデータが保護されない場合、バックアップしたのにデータにアクセスできないという泣きたい状況になってしまいます。

使っていないプラグインは削除

WordPressの魅力の一つにプラグインがありますが、インストールしては停止して、と繰り返していると、いつの間にか使っていないけどインストール済みのプラグインが溜まっていきます。

プラグインに脆弱性が発見され、そのままにしていると危険です。脆弱性の最大の原因はプラグインですからね。よって、使わなくなったプラグインはアンインストールし、削除。また使いたくなったらインストールしましょう。

WordPressコアやプラグイン、テーマ等を定期的にアップデート

コアのアップデート

WordPress本体であるコアのアップデートがあると更新できる

WordPressはアップデートする種類がいくつかあります。

  • コア: WordPressの本体のこと
  • プラグイン: 各種インストール済みのプラグイン
  • テーマ: 利用しているテーマ。オリジナルテーマの場合は基本的にアップデートという概念はない
  • 翻訳: 利用しているプラグイン等にて翻訳データがアップデートされると表示される

コアは常に最新を使いましょう。脆弱性を修正したWordPressが公開されると、画像のように「WordPressの新しいバージョンがあります」と通知され、利用できるようになります。また、変更していない限り、セキュリティの修正がメインのマイナーアップデートは自動で更新されます。

ただ、メジャーアップデートと呼ばれる機能や新しい関数の追加、古い関数の削除などが伴うアップデートの場合、対応していないプラグインのバグが発生したり、関数の影響でエラーが表示されたりという不具合が起こる可能性もあります。そのような場合はテスト環境で先にアップデートをし問題ないか確認したり、アップデート後に不具合があればバックアップから復元するといった対策を行いましょう。

プラグインのアップデート

プラグインも同様に、セキュリティの観点から常に最新を利用するべきです。プラグインは更新後のバージョンとの互換性の表示が一つの指標になります。ここが信頼できない低い数字や不明になっている場合、アップデートを一旦控えた方がいい判断のケースもあります。

このように互換性が表示される。

個人的には、プラグインのバージョンが1.5.5から1.5.6などのマイナーリリースの場合はあまり気にしませんが、2.0等のメジャーリリースにあたる場合は注意しています。

また、1年以上更新されていない古いプラグインは最新のWordPressに対応していない可能性があります。そのようなプラグインは利用を避け代替プラグインを探す、独自に機能を開発するなどしましょう。

テーマのアップデート

利用テーマの更新がある場合、このように表示される

Twenty Nineteen等のWordPress公式ディレクトリに登録されたテーマや、有料テーマを利用している場合はテーマ作者によりアップデートが発生します。WordPressコアアップデートに伴うセキュリティへの対応や、新機能追加といった場合がほとんどです。
テーマを利用している場合は子テーマを作成して構築しているケースがほとんどだと思うので、バックアップを取った上でアップデートしましょう。もし子テーマを作成していない場合、テーマをアップデートするとテーマに加えた変更やカスタマイズが全て上書きされてしまうので要注意。子テーマについては以下を参考にしてください。

参考: [WordPress]カスタマイズを始める前に覚えておきたい子テーマ機能と作成方法

Web制作会社にデザイン作成から依頼した場合などはオリジナルテーマとして登録されている場合が多いかと思います。そのような場合はテーマのアップデートという概念は基本的にありません。

セキュリティ対策の強化

WordPressをインストールしたままの状態や、何もセキュリティ対策しないで利用するのはセキュリティ上おすすめできません。行うべきセキュリティ対策はサイト毎に変わりますが、少なくとも以下の項目は対応しておくと安心です。

WebサイトのSSL化

SSLの仕組みは以下のサイトがマンガ付きでわかりやすく解説してくれています。

SSL(Secure Sockets Layer)とTLS(Transport Layer Security)は、いずれもインターネット上でデータを暗号化して送受信する仕組み(プロトコル)です。個人情報やクレジットカード情報などの重要なデータを暗号化して、サーバ~PC間での通信を安全に行なうことができます。

SSL/TLSってなんだろう?|SSL/TLS-総合解説サイト

運営しているウェブサイトは https://highfivecreate.com のようにhttpsから始まっていますか?sがついていない場合はSSLを利用していないため、すぐにサイト全体をSSL化しましょう。現在ChromeブラウザやiPhoneのSafariではSSL対応していないページにおいて警告や「安全ではありません」等の文言が表示され、このような状態だと訪問者は安全に利用できません。WordPressの推奨要件にもhttpsとあります。SEO的にも常時SSL化が望ましいでしょう。
また、WordPressサイトの場合はデータベースの変更も必要です。全ページや記事内にある画像やリンクなどはSSL前の状態である http から始まるURLのため、すべて https に変更する必要があります。全て手作業で変更するのは途方も無いため、データベース内にあるURLを一括で置換します。
WP-CLIを使ったり、データベース検索置換するツール等を使います。ツールの使い方は以前記事を書きました。

参考: [WordPress]ウィジェットや設定一切合切のデータベースまでまるごと移行できるツール

最近はLet’s Encrypt や AutoSSLなど無料で使えるsslが増えてきて、サーバーによっては手間なく更新してくれるため、予算的に有料SSLだと…という場合は嬉しい選択肢です。

SSL化してもページ内のリンクがhttpだとこのように表示されるため対応が必要

admin等のユーザー名を利用しない

WordPressに限りませんが、adminやAdministrator, サイト名など、安易に想像できるユーザー名を使うのは避けましょう。よく使われてそうなユーザー名+パスワードリストでブルートフォースアタック(よく使われる組み合わせでの総当たり攻撃)を受け、ログイン突破されてしまいます。もしログインされたのが管理者アカウントだったらと考えると…。

user名で避けるべき名前
admin
test
user
guest
centos
よく使われているからこそ、狙われる。

こんなuser名が狙われやすい!linuxで使ってはいけないuser名5選 – Qiita

WordPressの仕様上、ユーザー名の変更はできないため管理者権限で用意に想像できないユーザー名で新しくアカウントを作成し、作成済みの記事などは全て譲渡させましょう。

不要な管理者権限は削除

サイト作成時に関係者の管理者アカウントをいくつか作ったけど、結局使われていないままになっていませんか?めったにログインしないけど、念の為作成した管理者権限の人に限って、困ったことにパスワードを簡易的なものに変更したりします…。

不要な管理者権限は説明した上で削除。また、1年以上ログインがなければ権限を編集者に一旦落とすなど、万が一ログインされても管理者権限をもたないようしておくなどのリスク管理が必要です。

二段階認証の導入

管理者権限アカウントにおいてログイン時の二段階認証は必須です。ユーザー名とパスワードが漏れてしまったとしても、二段階認証を設定していればログインされません。もし仮にログインできてしまったとしても、手元にスマートフォンがないと二段階認証のワンタイムパスワードがわからないので、ログインできません。

二段階認証はブルートフォースアタックへの対策になります。会社や製品/サービスサイトが乗っ取られたら信用情報に関わるし、ましてやお客様の個人情報や会員情報などを扱うサイトであれば致命的です。

二段階認証はプラグインを利用するのが簡単です。いくつかありますが、無料だと以下どちらかがよく使われています。設定も簡単で10分くらい。

  • Google Authenticator – WordPress Two Factor Authentication (2FA)
  • Google Authenticator

どうしても二段階認証が運用上導入できない場合は、パスワードを強力に変更&定期的に変更するなどしてセキュリティ強化して凌ぐしかないですね…

ログインURLの変更

WordPressを使っている場合、対策をしていなかったり、ディレクトリを変更していなければ、大抵は サイトURL/wp-login.php や サイトURL/wp/wp-login.php でログイン画面にアクセスできてしまいます。ログイン画面がわかればあとはユーザー名+パスワードでブルートフォースアタックされてしまうと、二段階認証や強力なパスワードにしていないとログイン突破は時間の問題です。

ログインURLを変更することにより、関係者以外はログインURLがわからない状態になり、ブルートフォースアタック対策になります。

プラグインを使う場合は SiteGuard WP Plugin をインストールすると簡単にログインURLを変更できます。

機能のON/OFFの切替と、変更後のログインページ名の設定を行います。

ログインページ変更 | SiteGuard WP Plugin | ソフトウェアWAFのJP-Secure

プラグインを使わない場合はfuncions.phpに記述することで実装します。
参考: https://webcodezero.com/wordpress/wp-login/#WordPressURL-2

古いバージョンのPHPやMySQLを使わない

現在のWordPressの推奨要件では、PHP 7.3 / MySQL 5.6以上となっており、また最小要件としてはPHP 5.6 / MySQL 5.0です。

PHP バージョン 7.3 以上。
MySQL バージョン 5.6 以上、または MariaDB バージョン 10.1 以上。

(中略)

WordPress は PHP 5.6.20以上及び MySQL 5.0以上で動きます。しかしこれらの古いバージョンは既に公式でサポートが終了しており、サイトを脆弱性にさらす危険性があります。

日本語 « 要件 — WordPress

記載があるように、PHP自体のサポート状況を見ると、5.6と7.0のセキュリティサポートは2018年をもって既に終わっていますし、7.1のセキュリティサポートも2019年12月で終了予定です。
MySQLは公式の情報が見つけられませんでしたが、こちらによると5.0が2012年1月に既に終了、5.6は2021年2月終了予定です。
サポートが終了するということは、仮にセキュリティ上脆弱性が発見されても修正されないということです。よって古いバージョンを使い続けることによりリスクにさらされていることになります。

現在利用しているバージョンが何か確認し、サポート終了しているバージョンを使っている場合はバージョンを上げましょう。レンタルサーバーだとコントロールパネルからPHPやMySQLのバージョンを変更できるところが多いですが、アップデート後にエラーやバグが表示されることもあるため、バックアップは忘れずに行いましょう。

使い続けるリスクやバージョンアップによるスピード工場など詳しくは以下に書いたので興味があればご覧ください。
参考: 古いバージョンのPHPを使い続けていくことの問題点

ちなみに、レンタルサーバーだとPHP7.3を使えるところはまだ限られています。(記事公開時点だとエックスサーバーやヘテムル、KAGOYA等は未対応)よって、PHP 7.2や7.1を利用しているサイトもまだまだ多いでしょう。

FTPは使わない

サーバーとファイルのやりとりをする時にFTPで接続していませんか?FTPは暗号化されていないためとても危険な接続方法です。そもそもFTPとは、

FTP(File Transfer Protocol)はサーバーとクライアント間で、ファイルを送受信する通信の決まりごとです。

【入門】FTPとは?通信・ソフトについて分かりやすく解説します | カゴヤのサーバー研究室

という決まりごとであって、暗号化せずに転送します。そのため、ユーザー名とパスワードを暗号化しないで送ってしまいます。それは危険だよねってことで、SSLを利用して暗号化したFTPSや、暗号化と認証を使ったSSH接続を利用したSFTP、SSHを利用しFTP接続とは異なるより安全な通信であるSCPなどがあります。

FTPは使わずに、できればSCPかSFTP。最悪FTPSと、より安全に転送できる方法を選択しましょう。

参考: 「FTP」まだ使ってる? プロが使う「SCP」通信で、安全にファイル転送しよう

定期的なセキュリティスキャン

マルウェアやコード改ざん、バックドアといった不正なコードやファイルがないかサイト全体を定期的にスキャンし、危険な状態になっていないか確認します。

プラグインでスキャンできるものはたくさんありますが、有名なところとして以下です。

  • iThemes Security (formerly Better WP Security)
  • Wordfence Security – Firewall & Malware Scan

URLを入力するだけで、外部からチェックしてくれる無料のツールもあります。

  • Sucuri SiteCheck – Free Website Security Check & Malware Scanner
  • WordPress(ワードプレス)脆弱性診断 セキュリティースキャナ | ワードプレスドクター

不正なコードは設置されていないか、サイトの脆弱性がないか定期的にチェックし、常に安全な状態をキープすることが安心なサイト運用に繋がります。

テスト環境の作成

テスト環境がなく本番環境しかない場合、色々なリスクがつきまといます。

  • WordPressコアやプラグインといった新しいアップデートのたびに、不具合やエラーのリスク
  • 新しいページ作成時に、本番環境上しかないため稼働中のサイトに影響を与えてしまうリスク
  • 新しいプラグインの追加や既存プラグインの停止により、稼働中サイトの不具合やエラーが起こるリスク
  • PHPのバージョンアップにおいて、エラーや警告メッセージが表示されるリスク

詳しい理由は なぜWordPressのテスト検証環境を作る必要があるのか にまとめています。

テスト環境と本番環境は同じ環境で構築しないとエラーや不具合が再現できず、「テスト環境では問題ないが本番環境でエラーが出ている」といった状態にもなるため、同一環境上で作成することをおすすめします。

本番サイトを複製するには、容量制限がありますが All-in-One WP Migration というプラグインが非常に簡単です。Xserverになりますが、以前テスト環境の作成方法を書きましたのでご参考ください。

参考: WordPressのテストサイト・検証用環境の作り方

なぜWordPressのセキュリティ対策をしないといけないのか

以上、WordPressで行うべき代表的なセキュリティ対策をご紹介しました。実は、WordPressに対してのセキュリティ対策は年々重要になってきています。以下は2016-2018年の各種CMS(WordPress, Joomla, Drupal, Magento)において脆弱性の数のグラフです。(参考 The State of Web Application Vulnerabilities in 2018 | Imperva )

4つのCMSの中でWordPressがダントツで脆弱性が多く、また年々その数は増え2018年のWordPressにおいては542件です。

また、セキュリティソリューションを提供するSucuriが発表した記事によると、セキュリティ被害にあったCMSのうち9割はWordPressが対象でした。

ほとんどの被害対象はWordPress

「こんなに危険が多いなら、WordPressなんて使わなければよかった…」と思うでしょうか。WordPressが狙われる理由はとても簡単です。単に利用者が多く、これからももっと増えていくことが予想されるからです。

CMSを使っていないウェブサイトとCMSを使っている場合どのCMSかを表しているグラフ
W3tecsより

データの緑のラインはHTMLサイトですが、年々減少していっています。逆に、赤いラインはWordPressサイトの数ですが、増加しているのがわかります。あと数年でWordPressサイトの方がHTMLサイト数より多くなる見込みです。
WordPress以外のCMSは圧倒的に少なく、CMS界でWordPress一強なのがデータからわかります。

なので、WordPressが狙われるのはある意味理にかなっているんです。ウイルスもMacはユーザーは少ないから標的にされにくいですが、Windowsばかり狙われますよね。

WordPressは便利な反面、脆弱性対策をしっかりとやっていないとある日サイトが乗っ取られたり、被害にあうかもしれません。100%安全はありえませんが、今からできるセキュリティ対策をしっかりやっておくことをおすすめします。

WordPressサイトのセキュリティ対策で困っているサイト向けにWordPress 保守管理サポートを提供しています。

メールコンサルティング
WordPress保守管理サービス

Filed Under: WordPress 関連タグ:保守管理

池田祐太郎

WordPress の構築・保守を10年以上にわたって手掛けており、主に小〜中規模のコーポレートサイト・ECサイト・ブランドサイト等の企画・開発・保守・コンサルティングなどを行ってきました。2012年にハイファイブクリエイトを創業し、現在は WordPress の保守やコンサルティング、ディレクションや開発業務などを担当しています。 プロフィール詳細

この記事と関連する記事

外部のプロフェッショナルによる WordPress サイトの保守・運用:安心と安全性を手軽に手に入れる方法
2023年1月25日
タグ: 保守管理
カテゴリー: WordPress
WordPress のクロスサイト・スクリプティング被害にあった事例を共有します
2023年1月11日
タグ: セキュリティ, 保守管理
カテゴリー: WordPress
エラーログに wp-admin, wp-include 配下のファイルが含まれているエラーの対応方法
2022年11月15日
タグ: 保守管理
カテゴリー: TIPS

人気記事

  1. 同一サーバー上に構築するWordPressのテスト環境の作り方
  2. git pull してもエラーが出てファイルが反映されないときの対処法
  3. サイト制作の要件定義書に普段書いている内容(ダウンロード可)
  4. WordPressの固定ページでタグやカテゴリーを使いたいときはカスタム投稿タイプを検討する
  5. ダウンロードして即使えるサイトマップ(サイト構成図)のテンプレート5点
  6. WordPress において PHP 8.1 に更新していいかどうか検証

最初のサイドバー

WordPress保守管理サポート

Search

最近の投稿

  • WordPress サイトを多言語化するプラグイン5選(自動翻訳サービス除く)
  • ウェブサイトを自動的に多言語対応する各サービスを比較します
  • WooCommerce のバリエーションのある商品を追加して売上向上を図る
  • 目次生成プラグインの TOC+ が表示されなくなったときの対処法
  • ChatGPT の有料版「ChatGPT Plus」を使ってみた

カテゴリー

  • CSS初心者
  • HTML初心者
  • TIPS
  • WooCommerce
  • WordPress
  • エステサロン
  • お知らせ
  • キュレーション
  • サイトマップ
  • システム会社
  • デベロッパーツール入門
  • ブログ
  • ホームページ制作
  • ホームページ制作無料講座
  • メール
  • モバイル
  • 仕事のこと
  • 制作実績
  • 整体院
  • 美容院
  • 雑感

タグ

Android BtoC CMS css elementor git Google+ google workspace Gutenberg HTML iPhone jQuery Mac MAMP php SEO SNS SSL Sublime Text Webサイト高速化 Windows WordPress WordPressカスタマイズ WordPressテーマ WordPress構築調査 WPRocket アクセス解析 アプリ クラウドソーシング サイト引っ越し サブスクリプション サーバー ショートカットキー スマホサイト スマートフォン ツール フルサイト編集 ブログ プラグイン マーケティング リニューアル 保守管理 多言語 最適化 集客するサイト構築

アーカイブ

CONTACT

お問い合わせはこちら

Footer

  • PRIVACY POLICY
  • 情報セキュリティ基本方針
  • 特定商取引法に基づく表示
  • 転載/引用

© 2023 high five create All rights reserved.