WordPressのセキュリティなら、ハッカーまたは脆弱性による電子商取引サイト及びブログへの影響を防ぐ保護対策がいくつかあります。ウェブサイトが壊れたら、まるで悪夢の様ですね。今日は、WordPressのセキュリティを強化できる工夫、戦略、対策などをいくつかご説明します。

Kinstaは無料のハック修正を提供している為、当社のお客様ならご心配は必要ありません。一方、保証があってもベストプラクティスに従えばよいでしょう。

WordPressは安全でしょうか?

WordPressは安全でしょうかとお客様も悩んでいるかもしれません。原則、安心です。WordPressは、セキュリティ上の脆弱性があり本質的にビジネスに使用する安全なプラットフォームではないという悪評があります。しかしそのほとんどの場合の理由は、ユーザーが業界中に普及しているセキュリティ面でのワーストプラクティスに従ってしまうことです。

時代遅れのWordPressソフトウェアやゼロ化されたプラグインの使用、不正なシステム管理と資格情報管理、および非専門家のWordPressユーザーの不十分なWebまたはセキュリティの知識というのは、ハッカーがサイバー犯罪を成功しつつある理由です。業界のリーダーさえベストプラクティスを使用するとは 限りません。2012年にReutersは、WordPressの古いバージョンを使用していたため、ハッキングされました

基本的には、セキュリティとは完璧に安全なシステムのことではありません。そのようなものは実用的ではないか、見つけたり運用したりするのは不可能といえるでしょう。セキュリティというのはリスク削除ではなく、リスク減少です。無理のない範囲で利用可能なすべての適切なコントロールを利用して、自分自身を攻撃の標的にして結論的にハッキングされてしまうことの可能性を下げるようにあなたのいわゆる姿を改善することです。 – WordPress Security Codex

脆弱性が存在しないと言っているわけではありません。マルチプラットフォームのセキュリティ会社であるSucuriの2017年のQ3の調査によると、彼らが対応しいている感染したウェブサイトの大半は引き続きWordPressです。(83%)2016年の74%に対して増加しています。

WordPressのセキュリティ上の脆弱性
WordPressのセキュリティ上の脆弱性

WordPressは、インターネット上のすべてのウェブサイトの42.7%以上を占めており、何十万ものテーマとプラグインの組み合わせにより、脆弱性が存在し、引き続き発見されてしまうことは驚くべきことではありません。しかし、WordPressプラットフォームの周りには素晴らしいコミュニティがあり、脆弱性ができるだけ早く回復されるようにしています。2019年現在、WordPressのセキュリティチームは、リード開発者及びセキュリティ研究者からなる約50名の専門家のチームです。(2017年の時点で25名のチームでした。)そのやく半数はAutomattic の従業員であり、一分の方はウェブセキュリティ分野で活躍しています。

WordPressの脆弱性

下記のWordPressのセキュリティ上の脆弱性の例を是非ご確認ください。

バックドア

バックドアという脆弱性により、ハッカーはセキュリティ暗号化を迂回して隠れた通路を使って、WordPressウェブサイトに異常な方法(wp-Admin、SFTP、FTPなど)でアクセスできるようになります。悪用されるとバックドアにより、 ハッカーが同じサーバー上でホスティングされている複数のウェブサイトを攻撃できます。Sucuriの2017年Q3のレポートによると、バックドアが引き続き攻撃者が行うポストハック対策の1つであり、感染されたウェブサイトの71%が一定のバックドア汚染を受けています。

マルウェアの分布
マルウェアの分布

バックドアは、正当なWordPressシステムファイルのように表示されるように作成される為、古くなったバージョンのプラットフォームの弱点またはバグを悪用し、WordPressデータベースに入ってしまいます。

幸いなことに、バックドアの予防策も復旧方法もかなり簡単です。一般的なバックドアを簡単に検出できるSiteCheckなどのツールを使用し、WordPressウェブサイトをスキャンできます。2要素認証、IPのブロック、アドミンアクセスの制限、PHPファイルの不正な実行の防止などは、一般的なバックドアの予防策になります。Canton BeckerによるWordPressのインストールでのバックドア異常の復旧についての投稿も是非ご確認ください。

ファーマハック

ファーマハックエクスプロイトは、WordPressのウェブサイトまたはプラグインの古いバージョンに不正なコードを挿入することにより、汚染されたウェブサイトが検索されたときに検索エンジンで医薬品の広告が出るようにします。これはマルウェアよりもスパムですが、検索エンジンがスパムの配布のウェブサイトとして該当のウェブサイトをブロックしてしまうことがあります。

ファーマハックの移動部分にはプラグインベースとデータベースのバックドアが含まれていますが、Sucuriのブログのこちらの手順に従えば復旧できます。しかし、ファーマハックは、データベースに隠され暗号化されたインジェクション攻撃の変種であり、徹底的なクリーンアップが必要になることがよくあります。それにもかかわらず、推進されるWordPressのホスティング会社の最新のサーバー上でWordPressウェブサイトをホスティングし、テーマ、プラグイン等を定期的に更新することにより、ファーマハックを簡単に防ぐことができます。Kinstaなどのホスティング会社ではハック修正も用意されています。

ブルートフォースログイン攻撃

ブルートフォースログイン攻撃は、自動スクリプトを使用し弱いパスワードを悪用してウェブサイトにアクセスします。ブルートフォース攻撃を防ぐには、2段階認証、ログイン試行の制限、不正なログインの監視、IPのブロック、強力なパスワードの使用などが最も簡単で効果的な方法です。しかし残念なことに、WordPressのウェブサイトの所有者の多くはこれらのセキュリティ対策を実行しない為、ハッカーはブルートフォース攻撃を使用して1日で3万のウェブサイトを汚染してしまいます。

悪意のあるリダイレクト

悪意のあるリダイレクトは、FTP、SFTP、wp-adminなどのプロトコルを使用してWordPressのインストールでバックドアを作成し、リダイレクトコードをウェブサイトに挿入します。リダイレクトは符号化して、.htaccessファイルまたはその他のWPコアファイルに配置され、ウェブトラフィックを悪質なウェブサイトにリダイレクトします。予防策については、下記のWordPressのセキュリティガイドをご参照ください。

クロスサイトスクリプティング(XSS)

クロスサイトスクリプティング(XSS)とは、信頼性の高いウェブサイトまたはアプリケーションに悪質なスクリプトが埋め込まれることです。攻撃者はユーザーが知らないうちに悪意のあるコード(通常はブラウザ側のスクリプト)をエンドユーザーに送信します。その目的は、クッキーおよびセッションのデータを取得すること、あるいはページのHTMLを書き換えることです。

WordFenceによると、クロスサイトスクリプティングの脆弱性は、WordPressプラグインに見られる最も一般的な脆弱性です。

サービス拒否(DoS)

おそらく最も危険なのは、コードのエラーやバグを悪用して、ウェブサイトのオペレーティングシステムのメモリを圧倒するサービス拒否(Denial of Service、DoS )攻撃です。ハッカーは、DoS攻撃でWordPressソフトウェアの古いバージョンまたはバグの多いバージョンを悪用し、何百万ものウェブサイトを攻撃し、何百万ドルも手に入れています。財務的に動機付けられたサイバー犯罪者は中小企業をターゲットにする可能性は低い一方、中小企業の古いウェブサイトを使って大企業を攻撃するボットネットチェーンを作成することが多いです。

WordPressソフトウェアの最新バージョンでさえ、高度なDoS攻撃を防御することはできませんが、少なくとも、金融機関と高度なサイバー犯罪者の間のクロスファイヤーに巻き込まれるのを避けるのに便利です。また、2016年10月21日を忘れないでください。DNS DDoS攻撃のせいでインターネットがダウンした日です。プレミアムDNSプロバイダを使用しWordPressのセキュリティを強化することが重要である理由について詳しくは、こちらをご参照ください

WordPressのセキュリティガイド2019年

Internet live statsによると、毎日100,000以上のウェブサイトがハッキングされています!😮 そのため、WordPressのセキュリティを強化する以下の推進事項を確認することが大切です。

一日中ハッキングされるWordPressウェブサイトの数
日中ハッキングされるWordPressウェブサイトの数

WordPressプラットフォームで変化が多く、新しい脆弱性が出てしまいますので、本記事を定期的に更新いたします。

  1. 安全なWordPressホスティング
  2. PHPの最新バージョンを使用する
  3. ユーザー名とパスワードを上手に決める
  4. 最新版
  5. WordPressの管理者ログインをロックダウンする
  6. 二要素認証
  7. HTTPS – SSL証明書
  8. wp-config.phpを強化する
  9. XML-RPCを無効にする
  10. WordPressのバージョンを隠す
  11. HTTPセキュリティヘッダー
  12. WordPressのセキュリティプラグイン
  13. データベースのセキュリティ
  14. 安全な接続
  15. ファイルとサーバーのアクセス許可
  16. ダッシュボードでの編集を無効にする
  17. ホットリンクの防止
  18. 常にWordPressのバックアップを作成する
  19. DDoS防止

1. 安全なWordPressホスティングに投資する

WordPressのセキュリティなら、ウェブサイトをロックするだけではありません。(以下はロックダウンについても推進事項を述べます。)その他には、WordPressホスティング会社の責任範囲であるウェブサーバーレベルのセキュリティもあります。Kinstaでセキュリティを真剣に受け止め、お客様のためにセキュリティ課題の多くを処理しています。

あなたのビジネスの為に信頼できるホスティング会社を選択することは非常に重要です。自身のVPSでWordPressをホスティングしている場合、セキュリティ課題をご自分で処理できる知識が必要です。正直に言いますが、月当たりわずかな20ドルを節約するためにシステム管理者になろうとするのは危険な考えです。

安全なWordPressホスティング

サーバーのセキュリティ強化は、完全に安全なWordPress環境を維持する鍵です。WordPressウェブサイトをホスティングするITインフラストラクチャが、物理的および仮想的な高度な攻撃に対しても防御できるようにするため、ハードウェアおよびソフトウェアレベルの複数のセキュリティ対策が必要です。

このため、WordPressをホスティングしているサーバーは、最新のオペレーティングシステムと(セキュリティ)ソフトウェアで更新するだけでなく、徹底的に試験され、脆弱性やマルウェアのスキャンも行う必要があります。最近の例ですが、新しく発見されたOpenSSLセキュリティ脆弱性に対して当社がNGINXを修正する必要が発生しました。

サーバーレベルのファイアウォールと侵入検知システムは、WordPressのインストール中でも、またはウェブサイトの構築段階でも保護するために、WordPressをサーバーにインストールする前に用意する必要があります。ただし、WordPressコンテンツを保護するためにマシンにインストールされているすべてのソフトウェアは、最新のデータベース管理システムと互換性がないと、最適なパフォーマンスを維持することができません。また、サーバーを、機密コンテンツを悪意のある侵入者から隠すために、安全なネットワーキングとファイル転送暗号化プロトコル(FTPではなくSFTPなど)を使用するように設定する必要があります。

KinstaはすべてのWordPressのお客様を対象にGoogle Cloud Platformを使用し、WordPressの安全なホスティングを保証しています。Google Cloud Platformを使用するのには、現在はGmail、Google検索などの製品やサービスを保護している15年間にわたって構築されたセキュリティモデルを使用するという大きなメリットがあります。Googleは現在、500人以上の常勤セキュリティ専門家を雇用しています 。

KinstaがGoogle Cloud Platform の上に、Linuxコンテナ(LXC)とそれらを操作するためにLXDを使用しますので、アカウントだけではなく、各WordPressウェブサイトも完全に隔離できます。この方法は競争相手が提供している方法よりはるかに安全です。

Kinstaのアーキテクチャ
Kinstaのアーキテクチャ

2. PHPの最新バージョンを使用する

PHPはWordPressウェブサイトのバックボーンである為、サーバー上で最新バージョンを使用することは非常に重要です。PHPのメジャーリリースは、発売後2年間完全にサポートされています。その間、バグやセキュリティの問題は定期的に修正されています。現時点では、7.1以下のバージョンのPHPを使用してしまう方は、セキュリティサポートが全くなく、セキュリティ上の脆弱性に対して保護されていません。

サポートのあるPHPバージョン
サポートのあるPHPバージョン

WordPressの正式分析ページによると、本稿執筆の時点では、WordPressユーザーの57%以上がまだPHPの5.6以下のバージョンを使用しています。これをPHP 7.0と組み合わせると、ユーザーの77.5%がサポートされていないPHPバージョンを使用しています。それは恐ろしいです!

場合によっては、試験を行い、コードとの互換性を保証するのに時間がかかることもありますが、セキュリティサポートなしでの運用に対する言い訳はありません。言うまでもありませんが、古いバージョンを使用するとパフォーマンスも悪影響を受けます。

WordPress PHPバージョンのデータ
WordPress PHPバージョンのデータ

ご使用のPHPのバージョンが不明な方は、ウェブサイトのヘッダーリクエストを確認してください。もう一つ、すばやく確認できる方法は、Pingdomを使用する方法です。最初のリクエストをクリックし、X-Powered-Byのパラメータを確認します。これはウェブサーバーが現在使用しているPHPのバージョンを表示します。ただし、セキュリティ上の理由から、このヘッダーを削除するホスティング会社もあります。お客様のウェブサイトの安全のためにKinstaもデフォルトでこのヘッダを削除します。

PingdomにてPHPのバージョンを確認する
PingdomにてPHPのバージョンを確認する

Kinstaでは、PHPのサポートされているバージョン(7.2、7.3と7.4)のみのご利用をお勧めします。PHP 5.6、7.0と7.1はご利用できなくなりました。MyKinstaダッシュボードのボタンをクリックするだけで、PHPバージョン間の切り替えができます。

PHP 7.4への切り替え
PHP 7.4への切り替え

cPanelを使用するWordPressホスティング会社をご利用の方は、通常、ソフトウェアカテゴリの下で 「PHP Select」をクリックしてPHPバージョン間の切り替えができます。

cPanelのPHPバージョン
cPanelのPHPバージョン

3. ユーザー名とパスワードを上手に決める

驚きべきことに、WordPressのセキュリティを強化する最善の方法の一つは、単純にユーザー名とパスワードを上手に決めることです。かなり簡単ですね。なお、SplashDataによる2018年に盗まれた最も人気のあるパスワードの年間リスト(人気の順にソート)をチェックしてください。

  • 123456
  • password
  • 123456789
  • 12345678
  • 12345
  • 111111
  • 1234567
  • sunshine
  • qwerty
  • iloveyou

最も人気のあるパスワードは 「123456」で、その次は「Password」です! これを理由に、Kinstaでは新しいWordPressをインストールするときに、wp-adminログイン用に複雑なパスワードを使用するように強制しています(下のワンクリックインストールプロセス参照)。 これはオプションではありません。

安全なパスワードの強制
安全なパスワードの強制

WordPressのコアとなるwp_hash_password関数は、phpassパスワードハッシングフレームワークとMD5ベースのハッシングの8つのパスを使用します。

最高のセキュリティは基本から始まります。Googleは、強力なパスワードの選択方法について推進事項を定めています。または、Strong Password Generatorのようなオンラインツールを使用することもできます。

すべてのウェブサイトに異なるパスワードを使用することも重要です。パスワードをローカル保存する最善の方法は、コンピュータ上の暗号化されたデータベースに保存することです。例えば、KeePassは便利な無料のツールです。または、1PasswordまたはLastPassなどのオンラインパスワードマネージャーもあります。データはクラウドで安全にホスティングされていますが、各ウェブサイトでそれぞれのパスワードを使用しているのは一般的に安全です。それに、付箋紙にメモしておかなくていいです!😉

WordPressのインストールなら、デフォルトの 「admin」というユーザ名を使用しない方がいいです。管理者アカウントのユニックなWordPressユーザー名を作成し、 存在するなら「admin」ユーザーを削除してくださお。これを行うには、ダッシュボードの「ユーザー」メニューで新規ユーザーを追加し、「管理者」権限を設定します(下記参照)。

WordPressの管理者
WordPressの管理者

新しいアカウントを管理者に設定してから、元の「admin」ユーザーを削除することができます。削除をクリックしたときに必ず「すべての投稿を以下のユーザーにアサイン」で、新しく追加したユーザーを選択してください。これで既存の投稿は新規ユーザーにアサインされます。

すべての投稿を以下のユーザーにアサイン
すべての投稿を以下のユーザーにアサイン

次のコマンドを使用して、phpMyAdminで既存の「admin」ユーザ名を手動で変更することもできます。テーブルを編集する前にデータベースをバックアップしてください:

UPDATE wp_users SET user_login = 'newcomplexadminuser' WHERE user_login = 'admin';

4. 常にWordPress及びそのプラグインとテーマの最新版を使用する

WordPressのセキュリティを強化するもう一つの非常に重要な方法は、常に最新版を使用することです。WordPressのコア、プラグインとテーマ(リポジトリからのものもプレミアムなものも)もそうです。アップデートにはセキュリティの強化及びバグの修正が含まれています。本件については、当社のWordPressの自動更新についての詳細記事を是非ご確認ください。

最新版を使用する
最新版を使用する

残念なことに、何百万ものユーザーがWordPressのソフトウェアとプラグインの古いバージョンを使用しており、ビジネス成功の正しい道を歩んでいると考えています。「ウェブサイトが壊れる」、「コアの変更がなくなる」、「プラグイン○○が動かなくなる」、「その新しい機能が要らない」などの言い訳をしています。

実は、ウェブサイトご壊れるほとんどの理由は古いWordPressバージョンのバグです。コアの変更なら、WordPressチーム及びリスクを理解している専門家の開発者には、一切推奨されません。また、WordPressのアップデートには、最新のプラグインを実行できるために必要な追加機能の他には、必須のセキュリティパッチが含まれています。

プラグインの脆弱性がハッカーの侵入手口の55.9%を占めることをご存知ですか。これは、WordFenceが攻撃の実績のあるWordPressのウェブサイト所有者1000名をインタビューした調査で発見した結果です。プラグインを更新することで、プラグインを介して攻撃を受けないことを確認できます。

ハッキングされたWordPressウェブサイト
ハッキングされたWordPressウェブサイト

また、信頼できるプラグインのみをインストールすることをお勧めします。WordPressリポジトリの「おすすめ」カテゴリと「人気のある」カテゴリで始めた方が良いでしょう。または、開発者のウェブサイトから直接ダウンロードしてもよいでしょう。ゼロ化したWordPressプラグイン及びテーマをご利用しないよう、強くお勧めします。

まず第一に、修正されたコードに何が含まれているかわかりませんので、ウェブサイトがハッキングされる可能性があります。プレミアムWordPressプラグインの支払いを避けることは、コミュニティ全体としての成長にも支障をきたします。開発者をサポートしましょう。

WordPressテーマの正しい削除し方についてはこちらをご参照ください。

VirusTotalなどのオンラインツールを使用して、プラグインやテーマのファイルをスキャンすることにより、マルウェアが入っているか確認できます。

VirusTotal
VirusTotal

WordPressコアの更新方法について

WordPressのインストールを更新する簡単な方法がいくつかあります。Kinstaのお客様には、ワンクリックの復元オプションの自動バックアップをご用意しています。したがって、安心してWordPressとプラグインの新しいバージョンを試験することができます。または、ステージング環境で試験することも可能です。

WordPressのコアを更新するには、WordPressのダッシュボードで「更新」をクリックし、「今すぐ更新」ボタンをクリックします。

WordPressコアを更新する
WordPressコアを更新する

最新のバージョンをダウンロードし、SFTP経由でアップロードすることにより、WordPressを手動で更新することもできます。

注:誤ったフォルダを上書きすると、ウェブサイトが破壊する恐れがあります。自信のない方はまず開発者に確認してから手動更新を行ってください。

既存のインストールを更新するには下記に手順に従ってください。

  1. 古いwp-includeswp-adminのディレクトリを削除します。
  2. 新しいwp-includeswp-adminのディレクトリをアップロードします。
  3. 新しいwp-contentフォルダから既存のwp-contentフォルダに個々のファイルをアップロードし、既存のファイルを上書きします。既存のwp-contentフォルダを削除しないでください。既存のwp-contentディレクトリのファイルやフォルダを削除しないでください(新しいファイルで上書きされるファイル以外に)。
  4. 新しいバージョンのルートディレクトリから既存のWordPressルートディレクトリに新しいlooseファイルをすべてアップロードします。

WordPressのプラグインの更新方法について

WordPressプラグインを更新することは、WordPressコアを更新するのとよく似た手順です。WordPressのダッシュボードで「更新」をクリックし、更新するプラグインを選択して「プラグインの更新」をクリックします。

WordPressプラグインを更新する
WordPressプラグインを更新する

同様に、プラグインを手動で更新することもできます。単にプラグインの開発者からまたはWordPressリポジトリから最新のバージョンを入手し、FTP経由でアップロードして、/wp-content/pluginssディレクトリ内の既存のプラグインを上書きします。

開発者がプラグインの最新版を作成するとは限りませんので、ご注意ください。 WP Loopのチームは、WordPressのリポジトリの更新されていないプラグインの数を調べています。彼彼らの調査によると、リポジトリ内のプラグインの約50%は2年以上で更新されていません

もちろん、そのプラグインが最新版のWordPressでは機能しないことわけではありませんが、原則として活発に更新されるプラグインを選択した方がいいです。時代遅れのプラグインは、セキュリティの脆弱性を含む恐れが高くなります。

wordpress plugins not updated
画像出典:WP Loop

プラグインなら、常に慎重を期す必要があります。「最終更新日」と「評価」を確認してください。例えば、下記の例のプラグインは古くて評価も低い為、お勧めできません。しばらくの間に更新されていないプラグインの上部にWordPressによる警告が表示される場合も多いです。

古くて評価も低いWordPressプラグイン
古くて評価も低いWordPressプラグイン

また、WordPressの最新のセキュリティアップデートや脆弱性の情報を常に入手できるには、下記を参照してください:

WordPressセキュリティアーカイブ
WordPressセキュリティアーカイブ

5. WordPressの管理者ログインをロックダウンする

一般のWordPressウェブサイトまたはオンラインビジネスだと、隠蔽によるセキュリティ(security by obscurity)という戦略が役に立つ場合があります。ハッカーが特定のバックドアを見つけるのが難しくなると、攻撃される可能性は低くなります。WordPressの管理エリアとログインをロックダウンすることは、セキュリティを強化するのに便利です。これを行うには、まずデフォルトのwp-adminログインURLを変更し、ログイン試行を制限する方法があります。

WordPressのログインURLを変更する方法について

デフォルトでは、WordPressウェブサイトのログインURLはdomain.com/wp-adminです。ただし、すべてのボット、ハッカー、スクリプトなどもこれをよく知っています。URLを変更することで、ブルートフォース攻撃から自分を守ることができます。もちろん完全な解決策のにはなりませんが、便利な工夫です。

WordPressのログインURLを変更するには、無料のWPS Hide loginプラグインまたはプレミアムのPerfmattersプラグインを使用することをお勧めします。両方のプラグインには単純な入力欄があります。ボットまたはスクリプトがスキャンしようとしている可能性のあるリストにない完全にユニークなものを選んでください。

WordPressのログインURLを隠す
WordPressのログインURLを隠す

ログイン試行を制限する方法について

管理者のログインURLを変更する上記の工夫は、ログイン試行の過半数を防ぎますが、回数制限を設けることも非常に効果的です。無料Cerber Limit Login Attemptsプラグインは、ロックアウト期間、ログイン試行の件数、IPホワイトリストとブラックリストを設定するのに便利です。

WordPressにてログイン試行を制限する
WordPressにてログイン試行を制限する

よりシンプルなWordPressセキュリティソリューションをお探しの場合は、無料のLogin Lockdownプラグインが便利です。Login LockDownは、失敗したすべてのログイン試行のIPアドレスとタイムスタンプを記録します。同じIP範囲から短い時間内に特定の回数以上の試行が検出された場合、その範囲からのすべての要求に対してログイン機能は無効になります。それに、上記のWPS Hide loginプラグインと完全に互換性があります。

login lockdown wordpress
WordPressロックダウン

基本的なHTTP認証を追加する方法について(htpasswd保護)

管理者ログインのロックダウンする別の方法は、HTTP認証を追加することです。WordPressログインページにアクセスするには、ユーザー名とパスワードが必要です。注:ボットによる攻撃を防ぐ効果的な方法ですが、電子商取引サイト及びメンバーシップサイトでは使用しないでください。

.htpasswd認証ウィンドー
.htpasswd認証ウィンドー

Apache

cPanelホスティング会社をご利用の方は、コントロールパネルからパスワードで保護されたディレクトリを有効にすることができます。手動で設定するには、まず.htpasswdファイルを作成する必要があります。この便利なジェネレータツールを使用することができます。次に、ファイルをwp-adminフォルダの下のディレクトリにアップロードします。例えば:

home/user/.htpasswds/public_html/wp-admin/htpasswd/

次のコードで.htaccessファイルを作成し、/wp-admin/ディレクトリにアップロードします。ディレクトリパスとユーザー名を更新してください。

AuthName "Admins Only"
AuthUserFile /home/yourdirectory/.htpasswds/public_html/wp-admin/htpasswd
AuthType basic
require user yourusername

この方法のデメリットは、ウェブサイトのフロントエンドでAJAX(admin-ajax)を壊すことです。AJAXは、第三者プラグインの一分が必要とします。したがって、上記の.htaccessファイルに次のコードを追加してください。

<Files admin-ajax.php>
Order allow,deny
Allow from all
Satisfy any
</Files>

Nginx

Nginxをご利用の方も、基本的なHTTP認証でアクセスを制限することができます。こちらのチュートリアルをご確認ください。

Kinstaのお客さまには、パスワード保護(htpasswd)ツールをMyKinstaダッシュボードで簡単に設定いただけます。該当サイトの「ツール」セクションで「[有効にする」をクリックし、ユーザー名とパスワードを選択するだけで完了です。

.htpasswd保護を有効にする
.htpasswd保護を有効にする

有効にした後、WordPressサイトにアクセスするには認証が必要になります。認証情報の変更またはパスワード保護機能の有効化もいつでもできます。

URLパスをロックダウンする

Cloudflare及びSucuriなどのウェブアプリケーションファイアウォール(WAF)をご利用の場合には、URLパスを制限することもできす。自分のIPアドレスだけがWordPress管理者ログインURLにアクセスできるようにルールを設定することができます。ウェブサイトのバックエンドへのアクセスが必要な為、この工夫も電子商取引サイト及びメンバーシップサイトでは使用しないでください。

6. 二要素認証を使用する

もちろん、二要素認証を忘れることはできません!パスワードの安全性にかかわらず、他人に発見される危険があります。二要素認証は2段階の手順で、ログインするのにパスワードだけでなく、もう一つの方法が必要となります。もう一つの方法は、ショートメッセージ(SMS、Cメール、Pメール)、電話、または時間ベースのワンタイムパスワード(TOTP)などです。攻撃者はあなたのパスワードも携帯電話も手に入れる可能性が低い為、要素認証はWordPressウェブサイトをブルートフォース攻撃から完全に保護してくれます。

二要素認証は2つの要素があります。まず、ウェブホスティングプロバイダでのアカウントやダッシュボードがあります。他人がこれにアクセスできると、パスワードを変更したり、ウェブサイトを削除したり、DNSレコードを変更したり、あらゆる恐ろしいことができます。KinstaはAuthyを使用し、MyKinstaダッシュボードは二要素認証があります。

2段階認証の2番目の部分は、実際のWordPressのインストールです。当社は次のプラグインのどちらかをお勧めします:

上記の多くには携帯電話で利用可能な自身の認証アプリまります:

上記のプラグインのどちらかをインストールして設定した後に、WordPressのログインページにセキュリティコードを入力する追加の欄が付きます。一方、Duoプラグインの場合には、まずパスワードでログインしてから、Duo Push、通話、パスコードなどの認証方法を選択します。

この手段は、前述のデフォルトのログインURLを変更すること組み合わせることができます。そうすると、WordPressログインURLが関係者しか知らないものだけでなく、ログインするには追加の認証も必要です。💪

WordPressの二要素認証ページ
WordPressの二要素認証ページ

二要素認証を利用することを忘れないでください。WordPressのセキュリティを強化する素晴らしい方法です。

7. 暗号化された接続にHTTPSを使用する – SSL証明書

WordPressのセキュリティ強化のよく見落とされている方法の一つは、SSL証明書をインストールしてウェブサイトのHTTPS化を行うことです。HTTPS(Hyper Text Transfer Protocol Secure)は、ブラウザまたはWebアプリケーションがウェブサイトに安全に接続できるようにするメカニズムです。クレジットカードを処理しないとHTTPSが不要だというよくある誤解があります。

ここで、電子商取引以外にもHTTPSが重要である理由をいくつか説明しましょう。Kinstaを含む多くのホスティング会社は、Let’s Encryptで無料のSSL証明書を用意することになっています。

HTTPS暗号化の接続
HTTPS暗号化の接続

1. セキュリティ

HTTPSの最大の理由はもちろん、追加のセキュリティです。もちろん、電子商取引の場合はマストに違いありません。ただし、ログイン情報は非常に大切な情報ですよね。特に、複数の著者によるWordPressウェブサイトでHTTPを使用する場合は、著者がログインするたびにその情報がテキスト形式でサーバー上送信されます。HTTPSは、ウェブサイトとブラウザの間の安全な接続を維持するためには不可欠です。HTTPSだとハッカーまたは第三者がウェブサイトにアクセスするのを防ぐことができます。

ブログ、ニュースサイト、そして代理店でも、送信の際にプレーンテキストが一切使用しされないHTTPSが便利でしょう。

2. SEO

HTTPSがランキング要素であるとGoogleが公表しました。影響度が少ないですが、競合他社に勝つためにどのSERPsメリットも大切にする方が多いでしょう。

3. 信頼性

GlobalSignの調査によると、訪問者の28.9%がブラウザのアドレスバーが緑色であるかを確認しています。また、その77%が個人データがオンラインで傍受されたり誤用されたりすることを心配しています。緑色の南京錠を見ることで、顧客は個人データが安全であることが分かり、安心します。

4. 参照元データ

あまり知られたいないですが、HTTPSからHTTPへの参照(リファラー)の場合はそのデータがGoogle Analyticsでブロックされています。そのデータはどうなるかというと、ほとんど「直接トラフィック」のセクションに含まれます。HTTPからHTTPSへの場合も同様です。

5. Chromeの警告表示

2018年7月24日以降、Chrome v68以降のバージョンでは、データが収集されるかにもかかわらずHTTPSを使用していないすべてのウェブサイトを「安全でない」としてマークし始めました。HTTPSがこれまで以上に重要にりました!

あなたのウェブサイトのトラフィックの大半をChromeが占める場合には、これが特に重要です。Google Analyticsの「ブラウザとOS」でウェブサイトを訪れた人のブラウザを見ることができ、Google Chromeからのトラフィックの割合が確認できます。Googleでは、あなたのWordPressウェブサイトがセキュリティで保護された接続を使用していない可能性があることを、訪問者にはっきりさせています。

Chromeの安全でないウェブサイトのマーク
Chromeの安全でないウェブサイトのマーク

6. パフォーマンス

HTTP/2という新しいプロトコルのおかげで、HTTPS上で適切に最適化されたウェブサイトでは、スピード改善さえ確認できます。HTTP/2では、ブラウザサポートのためHTTPSが必要です。性能改善はさまざまな理由によるものです。例えば、HTTP/2がより優れた多重化、並列処理、ハフマン符号化によるHPACK圧縮、ALPN拡張、およびサーバープッシュなどのサポートができます。以前はHTTPS上で動作するようになったときにTLSのオーバーヘッドが結構ありましたが、現在かなり減ってきました。

TLS 1.3はHTTPS接続のさらなるスピードUPします!KinstaのすべてのサーバーもKinsta CDNもTLS 1.3対応です。

HTTPSに切り替えようと思っている方は、是非 当社のHTTPからHTTPSへの移行の詳細ガイドをご確認ください。

ウェブサイトへのログインするときまたはサイトの管理を行うときのサーバーとの安全かつ暗号化された接続を強制するには、wp-config.phpファイルに次の行を追加してください:

define('FORCE_SSL_ADMIN', true);

(参照文献:従来のTLSバージョンをご利用の場合は、ChromeのERR_SSL_OBSOLETE_VERSION 通知を修正することをお勧めします。)

8. wp-config.phpファイルを強化する

wp-config.phpファイルは、WordPressインストールの核心です。WordPressのセキュリティなら、ウェブサイトの最も重要なファイルです。このファイルには、データベースのログイン情報と、クッキーの情報の暗号化を処理するセキュリティー・キーが含まれています。以下は、この大切なファイルをより良く保護するためにできることについて述べます。

1. wp-config.phpを移動する

デフォルトでは、wp-config.phpファイルはWordPressインストールのルートディレクトリ(/public HTMLフォルダ)にあります。しかし、これを非wwwアクセス可能なディレクトリに移動することはできます。そうするとなぜ便利であるかについては、Aaron Adamsによる記事をご確認ください。

wp-config.phpファイルを移動するには、そのファイルの内容を完全にもう一つのファイルにコピーするだけです。次に、wp-config.phpファイルに次のスニペットを入れて、単にそのもう一つのファイルをリンクすることができます。注:ディレクトリパスは、Webホストとセットアップによって異なる場合があります。原則、その1つ上のディレクトリです。

<?php
include('/home/yourname/wp-config.php');

注:Kinstaのお客様は上記の手順に従うことができず、行ってしまうと当社のプラットホームが機能しなくなります。セキュリティ上の理由から、open_basedirの制限により~/publicディレクトリより上のPHPの実行が許可されていないためです。ただし、ご心配必要ありません。当社のチームは対応いたします。~/publicディレクトリからのwp-config.phpへのアクセスをブロックすることにより結果は上記と同じです。当社のデフォルトのNginx設定には、wp-config.phpへのアクセスを試行した場合に403エラーが出るルールがあります。

2. WordPressのセキュリティキーを更新する

WordPressのセキュリティキーとは、ユーザーのクッキーに保存される情報の暗号化を改善するランダムな変数を指します。WordPress 2.7以降、AUTH_KEYSECURE_AUTH_KEYLOGGED_IN_KEY及びNONCE_KEYの4つのキーがあります。

WordPressをインストールすると、これらがランダムに生成されます。ただし、複数のマイグレーションの実績のある方、または他のユーザーからウェブサイトを購入した方は、新しいWordPressキーを作成するとよいでしょう。当社の最高のWordPressマイグレーションプラグインについての記事も是非ご確認ください。)

WordPressには、ランダムキーを生成できる無料のツールがあります。それで、wp-config.php fileファイルに保存されている現在のキーが更新できます。

WordPressのセキュリティキー
WordPressのセキュリティキー

WordPressのセキュリティキーについてご確認ください。

3. パーミッションを変更する

WordPressウェブサイトのルートディレクトリにある各ファイルは644に設定されていることが多いです。つまり、ファイルの所有者がファイルを読み込みも書き込みもでき、グループのユーザーが読み込みでき、他のユーザーが読み込みできます。WordPressのオンラインマニュアル(ドキュメント)によると、wp-config.php ファイルをサーバー上の他のユーザーが読み込みできないようにアクセスパーミッションを440または400に設定する必要があります。FTPクライアントを使って簡単に変更できます。

wp-config.phpのパーミッション
wp-config.phpのパーミッション

ホスティングプラットフォームにより、ウェブサーバーを実行しているユーザーがファイルを書き込む権限がないため、パーミッションの手順が異なる場合があります。不明な方は、ご利用のホスティング会社までご連絡ください。

9. XML-RPCを無効にする

過去数年間で、XML-RPCはブルートフォース攻撃の標的となっています。Sucuriが述べたように、XML-RPCの隠れた機能の1つは、system.multicallメソッドを使用して単一のリクエスト内で複数のメソッドを実行できることです。アプリケーションが1つのHTTPリクエスト内で複数のコマンドを渡せる為、非常に便利です。しかし、悪用される場合もあります。

JetPackのようなXML-RPCを必要とするWordPressプラグインもありますが、ユーザーの大半はXML-RPCが不要で、単純にアクセスを無効にした方が良いでしょう。自分のウェブサイトがXML-RPCを使用しているか不明な方は、AutomatticチームのDanilo ErcoliによるXML-RPC ValidatorというツールでWordPressウェブサイトをご確認ください。XML-RPCが有効になっていない場合は、Kinstaブログの下の画像のようなエラーメッセージが出ます。

check wordpress xml-rpc
WordPress XML-RPC validator

完全に無効にするには、無料のDisable XML-RPC プラグインをインストールしてください。また、プレミアムperfmatters プラグインもごご利用できます。これにはウェブパフォーマンスの改善策も含まれています。

Kinstaのお客様は、上記の対策が不要です。当社ではXML-RPCによる攻撃が検出されたときにNGINX設定ファイルにコードスニペットを追加して攻撃を停止させ、403エラーが発生するようにしています。

location ~* ^/xmlrpc.php$ {
return 403;
}

10. WordPressのバージョンを隠す

WordPressのバージョンを隠すことは、また隠蔽によるセキュリティ(security by obscurity)のことです。WordPressウェブサイトの設定について、他の人が知っていることが少ないほど良いでしょう。WordPressの古いバージョンがインストールされているのを見ると、侵入者にとっては歓迎すべき兆候です。デフォルトでは、ウェブサイトのソースコードのヘッダーにWordPressのバージョンが表示されます。繰り返しますが、WordPressのインストールが常に最新であることを確認するだけで、本件についてご心配ありません。

WordPressバージョンのソースコード
WordPressバージョンのソースコード

次のコードを使用することにより削除できます。単にWordPressテーマのfunctions.phpファイルに以下を追加するだけです。

注:WordPressテーマのソースコードを編集することが正しく行わないとウェブサイトが破壊する恐れがあります。自信のない方はまず開発者に確認してから行ってください。
function wp_version_remove_version() {
return '';
}
add_filter('the_generator', 'wp_version_remove_version');

また、(Kinstaのチームメンバーによって開発された)perfmatters のようなプレミアムプラグインを使用することもできます。ワンクリックでWordPressのバージョンを非表示にし、WordPressサイトの最適化さえできます。

Perfmattersを使用してWordPressのバージョンを隠す
Perfmattersを使用してWordPressのバージョンを隠す

WordPressのバージョンが表示されるもう一つの場所は、すべてのWordPressのバージョンに含まれているデファクトのreadme.htmlファイルです(下図参照)。インストールのルート、domain.com/readme.htmlにあります。FTP経由でこのファイルを安全に削除できます。

readmeファイルにあるWordPressのバージョン
readmeファイルにあるWordPressのバージョン

WordPress5.0をご利用の場合には、バージョン番号がもはやファイルに含まれていない為、この手順は適用できません。

11. 最新のHTTPセキュリティヘッダーを追加する

WordPressのセキュリティを強化するためのもう1つのステップは、HTTPセキュリティヘッダーを利用することです。これらは通常、ウェブサーバーレベルで設定され、ウェブサイトのコンテンツを処理するときの動作方法をブラウザに指示します。さまざまなHTTPセキュリティヘッダがありますが、最も重要なのは次のとおりです:

さまざまなHTTPセキュリティヘッダーがありますが、最も重要なのは以下です。KeyCDNには、HTTPセキュリティヘッダーについての詳しい記事があります

Chromeのdevtoolsを使用し、ウェブサイトの最初の応答のヘッダーをチェックすることで、WordPressウェブサイトで現在使用されているヘッダーを確認できます。以下はkinsta.comの例です。strict-transport-security、xx-content-typeと x-frame-options ヘッダーを利用していることがわかります。

HTTPセキュリティヘッダー
HTTPセキュリティヘッダー

Scott Helmeの無料のsecurityheaders.io ツールを使用しても、WordPressウェブサイトをスキャンすることができます。これにより、現在ウェブサイトにあるHTTPセキュリティヘッダーが表示されます。追加する方法がわからない方は、ホストにお問い合わせください。

HTTPセキュリティヘッダーのスキャン
HTTPセキュリティヘッダーのスキャン

注:HTTPセキュリティヘッダーの追加のWordPressのサブドメインへの影響もご注意ください。たとえば、Content Security Policyヘッダーを追加し、ドメインによるアクセスを制限する場合は、ご自分のサブドメインも追加する必要があります。

12. WordPressのセキュリティプラグインを使用する

もちろん、WordPressのセキュリティプラグインについてもご紹介します。WordPressウェブサイトをより良く保護できるための優れたソリューションを提供している素晴らしい開発者または企業が多いです。例えば:

Kinstaは、ハードウェアファイアウォール、アクティブなかつパッシブなセキュリティ、毎分の稼働時間チェックなどの高度な機能があり、攻撃者がデータにアクセスできないようにしています。それでもお客様のウェブサイトが侵害された場合は、無料で処理いたします

上記のプラグインの人気のある機能は次のとおりです:

  • ユーザープロファイルの作成時に強力なパスワードの生成・強制
  • パスワードの期限切れと定期リセットの強制
  • ユーザアクションロギング
  • WordPressセキュリティキーの簡単なアップデート
  • マルウェアスキャン
  • 二要素認証
  • リキャッチャー
  • WordPressのセキュリティファイアウォール
  • IPホワイトリスト
  • IPブラックリスト作成
  • ファイル変更ログ
  • DNSの変更を監視する
  • 悪意のあるネットワークのブロック
  • 訪問者に関するWHOIS情報の表示

セキュリティプラグインの多くは非常に重要な機能であるチェックサムがあります。チェックサムはWordPressインストールのWordPress.orgによって(APIを通して)提供されるコアファイルとの違いを探します。ファイルの変更がある場合うは、ハッキングの可能性があります。WP-CLIを使用することにより独自のチェックサムを実行することもできます。

WP Security Audit Logプラグインも素晴らしいプラグインです。WPマルチサイトまたは複数の作成者サイトで作業している方にとってはピッタリです。 パスワードの変更、テーマの変更、ウィジェットの変更、新しい投稿の作成、WordPressの更新など、管理者がどの変更でもその変更内容が確認できることができます。

素晴らしいWordPressのアクティビティログソリューションです。本稿執筆の時点では、WP Security Audit Logプラグインは80,000以上のアクティブインストールがあり、評価は5つの星うち4.7です。

wordpress security audit log
WordPress Security Audit Log

また、電子メール通知、ユーザーセッション管理、検索、レポートなどの機能を追加したプレミアムアドオンも用意されています。悪意のある人をロックアウトできるその他のWordPressセキュリティプラグインも是非ご確認ください。

13. データベースのセキュリティを強化する

WordPressデータベースのセキュリティ強化する方法もいくつかあります。1つ目は、データベース名を上手に設定することです。例えば、volleyballtricksというウェブサイトなら、デフォルトの4WordPressデータベース名はwp_volleyballtricksになります。データベース名をもっと難しいものに変更すると、ハッカーがデータベースの詳細を識別してアクセスすることをより困難にすることができます。

2番目の推奨事項は、別のデータベーステーブル接頭辞を使用することです。デフォルトでは、WordPressはwp_を使用します。これを例えば39xw_に変更すると、より安全になります。WordPressをインストールすると、テーブルの接頭辞が設定できます(下記参照)。 ただし、既存のインストールでもWordPressテーブル接頭辞を変更する方法があります。Kinstaのお客様は、上記を実施する必要はありません。当社はウェブサイトとデータベースをロックダウンしています!

wordpressテーブル接頭辞
WordPressテーブル接頭辞・画僧出典:jatinarora

14. 常に安全な接続を使用する

何度も強調していますが、安全な接続を使用することは非常に重要です!WordPressホストがSFTP及びSSHを提供するなどの予防策を講じていることを必ずご確認ください。SFTP(Secure File Transfer Protocol、SSHファイル転送プロトコルともいう)とは、ファイル転送に使用されるネットワークプロトコルです。標準のFTPより安全な方法です。

お客様のデータが安全で暗号化された状態で転送されるよう、KinstaではSFTP接続のみご用意しています。ほとんどのWordPressホスティング会社は、SFTP用にポート22も使用しています。当社では、各ウェブサイトにMyKinstaダッシュボードで無作為化されたポートが割り当てられます。

SFTPの情報
SFTPの情報

また、ホームルータが正しく設定されていることを確認することも重要です。あなたのホームネットワークがハックされると、WordPressウェブサイトに関する重要な情報を含むあらゆる種類の情報にアクセスしてしまいます。対策の例をいくつか挙げます:

  • リモート管理(VPN)を有効にしないでください。 一般的のユーザーはこの機能を使用しません。無効のままだと、ネットワークを保護できます。
  • ルータはデフォルトで192.168.1.1などの範囲のIPを使用します。10.9.8.7などの異なる範囲を使用してください。
  • Wi-Fiの最高レベルの暗号化を有効にします。
  • 特定のIPの人またはパスワードを持つ人のみがアクセスできるように、Wi-Fiをホワイトリスト化してください。
  • ルータのファームウェアの最新版を使用してください。

公共の場所でWordPressウェブサイトにログインする際には常に注意が必要です。スターバックスは安全なネットワークではありませんので、ご用意ください。接続をクリックする前に、ネットワークのSSIDを確認するなどの予防策を講じてください。また、ExpressVPNなどの第三者VPNサービスを使用してインターネットトラフィックを暗号化し、ハッカーからIPアドレスを隠すこともできます。

15. ファイルとサーバーのアクセス許可を確認する

WordPressのセキュリティを強化するには、インストールとウェブサーバーの両方のファイルへのアクセス許可が不可欠です。許可があまりにも緩いと、他人が簡単にウェブサイトにアクセスして損傷を引き起こすことができます。一方、あなたの許可があまりにも厳しい場合、ウェブサイトの機能を破壊する可能性があります。そのため、正しく設定することが重要です。

ファイルのパーミッション

  • Read:そのファイルの読み込みを権限のあるユーザーに与えられます
  • Write:そのファイルの書き込みを権限のあるユーザーに与えられます。
  • Execute:そのファイルのスクリプトとしての実行権限のあるユーザーに与えられます。

ダイレクトリーのパーミッション

  • Read: 識別されたフォルダ/ディレクトリの内容にアクセスする権限のあるユーザーに与えられます
  • Write: フォルダ/ディレクトリのファイルを追加または削除する権限のあるユーザーに与えられます
  • Execute: 実際のディレクトリにアクセスし、フォルダ/ディレクトリ内のデータを削除するコマンドを実行する権限のあるユーザーに与えられます

iThemes Security のような無料のプラグインを使用して、WordPressウェブサイトの権限をスキャンすることができます。

WordPressの権限のスキャン
WordPressの権限のスキャン

以下はWordPressのファイルとフォルダのアクセス許可に関する推奨事項をです。より詳しい説明については、ファイルパーミッションの変更についてのWordPress Codexの記事を参照してください。

  • すべてのファイルを644または640に設定します。例外:wp-config.phpは、サーバー上の他のユーザーが読み取ることができないように、440または400に設定する必要があります。
  • すべてのディレクトリは755または750に設定する必要があります。
  • アップロードダイレクトリーでも、777のディレクトリを一切設定してはいけません。

16. WordPressダッシュボードでの編集を無効にする

WordPressウェブサイトの多くは複数のユーザーと管理者がおり、WordPressのセキュリティがさらに複雑にあにます。非常に悪い習慣ですが、作者または編集者にも管理者アクセス権を与えることです。残念なことに、よくある話です。故障を起こさないようにユーザに適切な権限を与えることが重要です。

WordPressの「外観」を微調整したくて誤りをして、「死の白い画面」が表示されたことが誰もがあるでしょう。てしまったファイルをローカルで編集し、FTP経由でアップロードする方が安全です。もちろん、まず開発サイトで試験した方がベストです。

WordPressの外観変更
WordPressの外観変更

なお、あるWordPressウェブサイトがハッキングされていると、まず外観エディタを使ってPHPファイル及びテーマを編集しようとしているようです。悪質なコードを実行する迅速な方法です。ダッシュボードからは外観エディタへのアクセスがないと、攻撃を防ぐ可能性があります。すべてのユーザーに関して 「edit_themes」、 「edit_plugins」と「edit_files」を削除するには、wp-config.phpファイルに次のコードを挿入します。

define('DISALLOW_FILE_EDIT', true);

17. ホットリンクの防止

ホットリンクの概念は簡単です。インターネットで画像を見つけ、自分のウェブサイトでその画像のURLを直接使用することはホットリンクです。該当の画像はあなたのウェブサイトに表示されますが、元のウェブサイトから配信されます。これはあくまでもホットリンクされたウェブサイトのバンドウィズを使用してしまいますので、窃盗です。大したことではないような気がしますが、本当は余分な費用がかかります。

例えば、The Oatmealの事件があります。Huffington Postは複数の画像からなるThe Oatmealの漫画をホットリンクしてしまったせいで、1,000ドルも請求されました。

hotlinking
ホットリンクによる請求書

Apacheでホットリンクを防止する

Apacheでのホットリンクを防止するには、次のコードを.htaccessファイルに追加するだけです。

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://dropbox.com/hotlink-placeholder.jpg [NC,R,L]

2番目の行は許可された参照先を定義します。この参照先は画像に直接リンクすることが許可されているウェブサイトで、あなたのウェブサイトのことです。複数のウェブサイトを許可する場合は、この行を複製して参照先を置き換えることができます。さらに複雑なルールを生成したい方は、こちらのhtaccessホットリンク保護ジェネレータをご確認ください。

NGINXでホットリンクを防止する

NGINXでのホットリンクを防止するには、次のコードを設定ファイルに追加するあけです。

location ~ .(gif|png|jpe?g)$ {
valid_referers none blocked ~.google. ~.bing. ~.yahoo yourdomain.com *.yourdomain.com;
if ($invalid_referer) {
return 403;
}
}

CDNでホットリンクを防止する

CDNをご利用の場合は、設定が多少異なる場合があります。以下は人気のあるCDNプロバイダの手順です。

18. 常にバックアップを作成する

バックアップは、必要だと知っていても、作成し忘れるものです。上記の推奨事項のほとんどは、ウェブサイトを保護する対策です。しかし、いくら安全なウェブサイトでも、決して100%安全ではありません。最悪の場合に備えてバックアップを作成しましょう。

ほとんどのマネージドWordPressホスティングプロバイダは、バックアップを提供しています。Kinstaでは、お客様が安心できるように自動バックアップを含め5種類のバックアップをご用意しています。ワンクリックでさえウェブサイトを復元できます。

WordPressの自動バックアップ
WordPressの自動バックアップ

あなたのホスティング会社にはバックアップがない場合は、プロセスを自動化するために使用できる人気のあるWordPressサービスとプラグインがいくつかあります。

WordPressのバックアップサービス

WordPressのバックアップサービスの多くは、毎月の料金が安く、バックアップをクラウドに保存しています。

WordPressのバックアッププラグイン

WordPressバックアッププラグインを使用すると、FTP経由でバックアップを取得したり、Amazon S3、Google Cloud Storage、Google Drive、Dropboxなどの外部ストレージソースと統合することができます。インクリメンタルソリューションを使用してリソースの使用量を減らすことを強くお勧めします。

注:パフォーマンス上の問題により、Kinstaのサーバ上で非増分バックアッププラグインの利用を許可していません。しかし、サーバーレベルで処理いたしますのでWordPressウェブサイトのスピードには影響がありません。

19. DDoS防止

DDoS攻撃とは、DOS攻撃の一種で、複数のシステムを使用して1つのシステムを対象にサービス拒否(DoS)攻撃を引き起こすものです。DDoS攻撃は新しいものでなく、Britannica によると、最初に記録された事件は2000年の初めにさかのぼります。ウェブサイトがハッキングされたときとは違って、この攻撃はウェブサイトに害を及ぼさず、数時間または数日間ダウンさせるだけです。

それでは、どうすればいいでしょうか。まず、Cloudflare 及びSucuriのような信頼できる第三者のセキュリティサービスを使用した方がいいです。事業を運営している場合は、プレミアムプランに投資した方が良いでしょう。

CloudflareとSucuriのDDoS保護
CloudflareとSucuriのDDoS保護

彼らの高度なDDoS保護を使用して、UDPおよびICMPプロトコルを対象とするすべてのDDoS攻撃、またはSYN/ACK、DNS増幅、およびレイヤ7攻撃などを緩和できます。もう一つのメリットですが、元のIPアドレスを隠すプロキシ設けますが、これは万全ではありません。

DDoS攻撃を阻止する方法についての当社のケーススタディを是非ご確認ください。ケーススタディのお客様がEasy Digital Downloadsを使った小規模な電子商取引サイトを持っています。あるとき、7日以内に1つのページで500万件以上のリクエストがありました。このウェブサイトは通常、1日バンドウィズで30〜40MBと数百人の訪問者しか発生しませんでした。しかし、急に1日15-19 GBのデータ転送が発生しました! 4650%の増加です。Google Analyticsでは追加のトラフィックは見られませんでした。困りますね。

DDoS攻撃
DDoS攻撃

お客様はSucuriのウェブアプリケーションファイアウォールをウェブサイトに実装したとき、バンドウィズとリクエストが急激に落ち(以下をご参照)、それ以降は再発がありませんでした。このような問題が発生すると、ウェブアプリケーションファイアウォールは間違いなく良い投資または時間の節約です。

SucuriのWAFを追加した後
SucuriのWAFを追加した後

まとめ

ご覧のとおり、WordPressのセキュリティを強化する方法は数多くあります。パスワードを上手に決め、コアとプラグインの最新版を使用し、安全なマネージドWordPressホスティング会社を選択することは、WordPressウェブサイトの安全のためにできることのほんの一部です。お客様の多くにとっては、WordPressウェブサイトはビジネスと収入の両方です。従って、時間をかけて、上記のセキュリティのベストプラクティスのいくつかを早ければ早いほど行った方が良いでしょう。

見逃してしまった重要なWordPressのセキュリティに関する工夫をご存知ですか。ご意見をお寄せください。

Brian Jackson

Brianの最大の情熱の一つは10年以上使用してきたWordPressです。複数のプレミアムプラグインさえ開発しています。Brianの趣味はブログや映画やハイキングなどです。TwitterでBrianとつながりましょう。