WordPressのセキュリティを甘く見てはいけません。ハッカーによる攻撃や脆弱性によって、大事なあなたのウェブサイトに危険が及ぶ可能性があります。サイトが完全に破損してしまうことも珍しくありません。そんな悪夢を回避するために、今すぐ、WordPressのセキュリティ保護を強化する対策を具体的にご紹介します。
ちなみにKinstaでは無料にてハッキング対処サービスをご提供していますので、すでにKinstaをお使いであればご安心ください。いずれにしてもサイトを管理する人はすべて対策を講じるべきです。
WordPressのセキュリティは大丈夫?
WordPressは安全性についてはこちらの記事で詳しくご紹介しています。大部分がセキュリティを意識して堅牢につくられています。しかし、 WordPressのセキュリティ面について心配の声が挙がっているのは事実で、ビジネスに使用するには頼りないという悪評も存在します。しかし、利用者が正しく使えていないことが不安の原因です。
つまり、セキュリティ面で安心できるかどうかは、利用者の心がけ次第です。更新をずっと行なっていないプラグインや違法に配布されているプラグインの使用、安全性の低いパスワード、よくわからないまま実施するセキュリティの調整により、ハッカーにとっての抜け穴がいくらでも生まれます。長年のサイト管理経験者でさえベストプラクティスを実践できているとは 限りません。2012年にReutersはWordPressの古いバージョンを使用しハッキング被害にあっています。
基本的には、セキュリティは完璧に安全なシステムを意味しない。そのようなものは実用的ではなく、見つけたり運用したりするのは不可能とすら言える。セキュリティはリスクの除去ではなくリスクの減少。無理のない範囲で可能なすべての技を使い、攻撃の標的になる可能性を下げることが肝心 – WordPress Security Codex
もちろん脆弱性が存在しないと言っているわけではありません。マルチプラットフォームのセキュリティ会社であるSucuriの2017年第三四半期の調査によると、同社が対応した感染被害サイトの大半はWordPress(83%)を利用していたとのことです。2016年の74%からの増加です。
![WordPressのセキュリティ上の脆弱性](https://kinsta.com/jp/wp-content/uploads/sites/6/2016/10/wordpress-vulnerabilities-2017-1.png)
WordPressは、インターネット上のすべてのウェブサイトの43.6%以上を占めており、何十万ものテーマとプラグインの組み合わせにより、脆弱性が存在し発見されてしまうことは驚くべきことではありません。しかし、WordPressには強固なコミュニティがあり、脆弱性が見つかった場合には素早い復旧が試みられます。2019年現在WordPressのセキュリティチームは、リード開発者及びセキュリティのプロ約50名で構成されます(2017年では25名でした)。その約半数はAutomatticの社員であり、残りのメンバーもウェブセキュリティ分野で活躍しています。
WordPressの脆弱性
下記のWordPressのセキュリティ上の脆弱性の例をご確認ください。
バックドア
バックドアという脆弱性により、ハッカーはセキュリティ暗号化を迂回して隠れた通路を使って、WordPressウェブサイトに異常な方法(wp-Admin、SFTP、FTPなど)でアクセスできるようになります。悪用されるとバックドアにより、 ハッカーが同じサーバー上でホスティングされている複数のウェブサイトを攻撃できます。Sucuriの2017年Q3のレポートによると、バックドアが引き続き攻撃者が行うポストハック対策の1つであり、感染されたウェブサイトの71%が一定のバックドア汚染を受けています。
![マルウェアの分布](https://kinsta.com/jp/wp-content/uploads/sites/6/2016/10/wordpress-security-backdoors-1-1.png)
バックドアは、正当なWordPressシステムファイルのように表示されるように作成される為、古くなったバージョンのプラットフォームの弱点またはバグを悪用し、WordPressデータベースに入ってしまいます。
幸いなことに、バックドアの予防策も復旧方法もかなり簡単です。一般的なバックドアを簡単に検出できるSiteCheckなどのツールを使用し、WordPressウェブサイトをスキャンできます。2要素認証、IPのブロック、アドミンアクセスの制限、PHPファイルの不正な実行の防止などは、一般的なバックドアの予防策になります。Canton BeckerによるWordPressのインストールでのバックドア異常の復旧についての投稿も是非ご確認ください。
ファーマハック
ファーマハックは、WordPressサイトまたはプラグインの古いバージョンに不正なコードを挿入する手法で、これの被害に遭うと、ウェブサイトに身に覚えのない医薬品の広告が表示されます。これはマルウェアよりもスパムに分類されますが、検索エンジンがスパムサイトとして認識しサイトをブロックしてしまう恐れがあります。
ファーマハックの攻撃経路にはプラグインやデータベースなどがありますが、Sucuriのブログの手順に従えば復旧は可能です。しかし、ファーマハックはデータベースに隠れる性質があり、暗号化も伴うことから徹底的なクリーンアップが必要になるものです。これの発生を防ぐ対策として、セキュリティに力を入れたWordPress専用サーバーの利用、テーマやプラグインの頻繁な更新が効果的です。Kinstaではハッキング対処が無料です。
ブルートフォースログイン攻撃
ブルートフォースログイン攻撃は、ログインの試みを自動化することで脆弱なパスワードに狙いを定めます。ブルートフォース攻撃を防ぐには、二要素認証、ログイン試行の制限、不正なログインの監視、IPアドレスのブロック、強力なパスワードの使用などが行えます。しかし残念なことに、WordPressサイト所有者の多くはこれらのセキュリティ対策を実行しないため、ブルートフォース攻撃により1日3万のウェブサイトが被害に遭っているとされています。
悪意のあるリダイレクト
悪意のあるリダイレクトは、FTP、SFTP、wp-adminなどのプロトコルを使用してWordPressにバックドアを作成し、リダイレクトコードをウェブサイトに挿入する手法です。リダイレクトは符号化して、.htaccessファイルまたはその他のWPコアファイルに配置され、結果的にウェブサイトの訪問者が外部の危険なサイトにリダイレクトされます。
クロスサイトスクリプティング(XSS)
クロスサイトスクリプティング(XSS)とは、ウェブサイトまたはアプリケーションに悪質なスクリプトを埋め込む行為です。知らないうちにサイト訪問者に悪意のあるコード(通常はブラウザ側のスクリプト)が送信されます。その目的は、クッキーおよびセッションのデータを取得すること、あるいはページのHTMLを書き換えることです。
WordFenceによると、クロスサイトスクリプティングによる攻撃はWordPressプラグインに見られる最も一般的な脆弱性だとされています。
サービス拒否(DoS)
中でも危険性が高いのが、コードのエラーやバグを悪用して、ウェブサイトのオペレーティングシステムのメモリを圧倒するサービス拒否(Denial of Service、DoS )攻撃です。ハッカーはDoS攻撃でWordPressソフトウェアの古いバージョンまたはバグの多いバージョンを悪用し、何百万ものウェブサイトを攻撃し、何百万ドルもの被害を出しています。金銭的な動機のあるサイバー犯罪組織が中小企業をターゲットにする可能性は低いものの、中小企業の古くなったウェブサイトを使って大企業を攻撃するボットネットチェーンという手法も存在するので安心できません。
WordPressソフトウェアの最新バージョンだけで自動で高度なDoS攻撃を完全に防御することはできませんが、少なくとも、金融機関とサイバー犯罪者の間の「抗争」に巻き込まれるのを避けるのには効果的です。また、2016年10月21日という日も忘れてはなりません。DNS DDoS攻撃でインターネットがダウンした日です。特別なプレミアムDNSを使用しWordPressサイトのセキュリティを強化することが重要である理由については、こちらのDNSについての解説をご覧ください。
WordPressのセキュリティガイド2019年
Internet live statsによると、毎日10万以上のウェブサイトがハッキングの魔の手に晒されているとのことです😮 不測の事態に陥らないために、WordPressサイトのセキュリティ強化の対策を実施することが重要です。
![一日中ハッキングされるWordPressウェブサイトの数](https://kinsta.com/wp-content/uploads/2016/10/wordpress-sites-hacked-1.png)
WordPressプラットフォームは絶え間ない変化により数々のセキュリティ面での策を講じていますが、利用者がそれを理解し最大限に使いこなすことが欠かせません。
- 安全なWordPress専用サーバー
- PHPの最新バージョンを使用する
- ユーザー名とパスワードを上手に決める
- 最新版
- WordPressの管理者ログインをロックダウンする
- 二要素認証
- HTTPS – SSL証明書
- wp-config.phpを強化する
- XML-RPCを無効にする
- WordPressのバージョンを隠す
- HTTPセキュリティヘッダー
- WordPressのセキュリティプラグイン
- データベースのセキュリティ
- 安全な接続
- ファイルとサーバーのアクセス許可
- ダッシュボードでの編集を無効にする
- ホットリンクの防止
- 常にWordPressのバックアップを作成する
- DDoS防止
1. 信頼のWordPressサーバーを選ぶ
WordPressのセキュリティを強化するには、ウェブサイトの一部のアクセスを制限するだけでは意味がありません。簡単にいえば、サーバーやサーバーサービスに任せる側面でも最大限のセキュリティを確保しなければなりません。Kinstaはセキュリティを真剣に捉え、すべてのお客様のためにセキュリティ対策を数多く実施しています。
この機会にお客様のビジネスを信頼に足るサーバーやサーバーサービスに委ねているかご確認ください。自力で管理する場合も同様です。VPSでWordPressサイトをホストするには、セキュリティの対策について高いレベルでの知識が必要になります。毎月数千円を節約するためだけにシステム管理を自前で済ますのは危険な考えです。
サーバーのセキュリティ強化は、安全なWordPress環境を維持する鍵です。WordPressウェブサイトをホスティングするITインフラストラクチャが、物理的および仮想的な高度な攻撃に対して守りを固められるよう、ハードウェアおよびソフトウェアレベルの複数のセキュリティ対策が必要です。
このため、WordPressをホスティングするサーバーでは、最新のオペレーティングシステムと(セキュリティ)ソフトウェアを常に実装するだけでなく、徹底的な試験と脆弱性・マルウェアスキャンを継続的に行うべきです。最近の例として、新しく発見されたOpenSSLセキュリティ脆弱性に対してKinstaでは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のアーキテクチャ](https://kinsta.com/wp-content/uploads/2018/04/kinsta-architecture-3-1.png)
2. PHPの最新バージョンを使用する
PHPはWordPressウェブサイトのバックボーンであるため、サーバー上で最新バージョンを使用することが重要です。PHPのメジャーリリースは、リリース後2年間完全にサポートされ、その間、バグやセキュリティの問題は定期的に修正されます。古いバージョンを使用するとセキュリティのサポートが付帯せず脆弱性を抱えることになります。
![サポートのあるPHPバージョン](https://kinsta.com/jp/wp-content/uploads/2019/02/supported-php-versions.png)
WordPressの正式分析ページによると、本稿執筆時点では、WordPressユーザーの57%以上がいまだにPHP5.6以下のバージョンを使用しているとのことです。これをPHP 7.0と組み合わせると、ユーザーの77.5%がサポートされていないPHPバージョンを使用しています。恐ろしい事実です。
場合によっては、試験を行い、コードとの互換性を保証するのに時間がかかることもありますが、セキュリティサポートなしでの運用はもってのほかです。言うまでもありませんが、古いバージョンを使用するとパフォーマンスも悪影響を受けます。
![WordPress PHPバージョンのデータ](https://kinsta.com/wp-content/uploads/2017/03/wordpress-php-versions-stats-1.png)
ご使用のPHPのバージョンが不明な方は、ウェブサイトのヘッダーリクエストを確認してください。Pingdomを使用しても素早く確認できます。最初のリクエストをクリックし、X-Powered-By
のパラメータを確認します。するとウェブサーバーで使用されているPHPのバージョンが表示されます。ただし、セキュリティ上の理由から、このヘッダーを削除するサーバーやサーバーサービスもあります。お客様のウェブサイトの安全のためにKinstaもデフォルトでこのヘッダを削除しています。
![PingdomにてPHPのバージョンを確認する](https://kinsta.com/jp/wp-content/uploads/2017/03/check-php-version-pingdom-1.png)
Kinstaでは、PHPのサポートされているバージョンのみのご利用をお勧めします。MyKinstaでボタンをクリックするだけで、PHPバージョン間の切り替えが簡単に行えます。
![PHP 7.4への切り替え](https://kinsta.com/jp/wp-content/uploads/sites/6/2018/07/mykinsta-php-7-40.png)
cPanelを使用するWordPressサーバーをご利用の方は、通常、ソフトウェアカテゴリの下で 「PHP Select」をクリックしてPHPバージョン間の切り替えができます。
![cPanelのPHPバージョン](https://kinsta.com/jp/wp-content/uploads/sites/6/2016/10/cpanel-php-version-1.jpg)
3. ユーザー名とパスワードを変える
少し意外かもしれませんが、WordPressのセキュリティを強化する最善の方法の一つは、単純にユーザー名とパスワードを上手に決めることです。簡単に誰でも実践できます。なおSplashDataによると、2018年に最も被害に遭ったパスワード一覧は以下の通りです。
- 123456
- password
- 123456789
- 12345678
- 12345
- 111111
- 1234567
- sunshine
- qwerty
- iloveyou
最も危ないパスワードが 「123456」で、その次は「Password」です。これを理由に、Kinstaでは新しいWordPressをインストールするときに、wp-adminログイン用に複雑なパスワードを使用するように強制する設定になっています。
![安全なパスワードの強制](https://kinsta.com/wp-content/uploads/2016/10/force-secure-wordpress-password-1.png)
WordPressのコアとなるwp_hash_password
関数は、phpassパスワードハッシングフレームワークとMD5ベースのハッシングの8つのパスを使用します。
最高のセキュリティは基本から始まります。Googleは、強力なパスワードの選択方法について推進事項を定めています。または、Strong Password Generatorのようなオンラインツールを使用することもできます。
すべてのウェブサイトに異なるパスワードを使用することも重要です。パスワードをローカル保存する最善の方法は、コンピュータ上の暗号化されたデータベースに保存することです。例えば、KeePassは便利な無料のツールです。または、1PasswordまたはLastPassなどのオンラインパスワードマネージャーもあります。データはクラウドで安全にホスティングされていますが、各ウェブサイトでそれぞれのパスワードを使用しているのは一般的に安全です。それに、付箋紙にメモしておかなくていいです!😉
WordPressのインストールなら、デフォルトの 「admin」というユーザ名を使用しない方がいいです。管理者アカウントのユニックなWordPressユーザー名を作成し、 存在するなら「admin」ユーザーを削除してくださお。これを行うには、ダッシュボードの「ユーザー」メニューで新規ユーザーを追加し、「管理者」権限を設定します(下記参照)。
![WordPressの管理者](https://kinsta.com/wp-content/uploads/2016/10/add-new-admin-user-1.png)
新しいアカウントを管理者に設定してから、元の「admin」ユーザーを削除することができます。削除をクリックしたときに必ず「すべての投稿を以下のユーザーにアサイン」で、新しく追加したユーザーを選択してください。これで既存の投稿は新規ユーザーにアサインされます。
![すべての投稿を以下のユーザーにアサイン](https://kinsta.com/jp/wp-content/uploads/sites/6/2016/10/delete-admin-attribute-all-content-to-1.png)
次のコマンドを使用して、phpMyAdminで既存の「admin」ユーザ名を手動で変更することもできます。テーブルを編集する前にデータベースをバックアップしてください:
UPDATE wp_users SET user_login = 'newcomplexadminuser' WHERE user_login = 'admin';
4. 常にWordPress及びそのプラグインとテーマの最新版を使用する
WordPressのセキュリティを強化するもう一つの非常に重要な方法は、常に最新版を使用することです。WordPressのコア、プラグインとテーマ(リポジトリからのものもプレミアムなものも)もそうです。アップデートにはセキュリティの強化及びバグの修正が含まれています。本件については、当社のWordPressの自動更新についての詳細記事を是非ご確認ください。
![最新版を使用する](https://kinsta.com/wp-content/uploads/2016/10/keep-wordpress-up-to-date-1.png)
残念なことに、何百万ものユーザーがWordPressのソフトウェアとプラグインの古いバージョンを使用しており、ビジネス成功の正しい道を歩んでいると考えています。「ウェブサイトが壊れる」、「コアの変更がなくなる」、「プラグイン○○が動かなくなる」、「その新しい機能が要らない」などの言い訳をしています。
実は、ウェブサイトご壊れるほとんどの理由は古いWordPressバージョンのバグです。コアの変更なら、WordPressチーム及びリスクを理解している専門家の開発者には、一切推奨されません。また、WordPressのアップデートには、最新のプラグインを実行できるために必要な追加機能の他には、必須のセキュリティパッチが含まれています。
プラグインの脆弱性がハッカーの侵入手口の55.9%を占めることをご存知ですか。これは、WordFenceが攻撃の実績のあるWordPressのウェブサイト所有者1000名をインタビューした調査で発見した結果です。プラグインを更新することで、プラグインを介して攻撃を受けないことを確認できます。
![ハッキングされたWordPressウェブサイト](https://kinsta.com/jp/wp-content/uploads/sites/6/2016/10/hacked-wordpress-websites-plugins-1.png)
また、信頼できるプラグインのみをインストールすることをお勧めします。WordPressリポジトリの「おすすめ」カテゴリと「人気のある」カテゴリで始めた方が良いでしょう。または、開発者のウェブサイトから直接ダウンロードしてもよいでしょう。ゼロ化したWordPressプラグイン及びテーマをご利用しないよう、強くお勧めします。
まず第一に、修正されたコードに何が含まれているかわかりませんので、ウェブサイトがハッキングされる可能性があります。プレミアムWordPressプラグインの支払いを避けることは、コミュニティ全体としての成長にも支障をきたします。開発者をサポートしましょう。
WordPressテーマの正しい削除し方についてはこちらをご参照ください。
VirusTotalなどのオンラインツールを使用して、プラグインやテーマのファイルをスキャンすることにより、マルウェアが入っているか確認できます。
![VirusTotal](https://kinsta.com/wp-content/uploads/2018/10/virus-total.png)
WordPressコアの更新方法について
WordPressのインストールを更新する簡単な方法がいくつかあります。Kinstaのお客様には、ワンクリックの復元オプションの自動バックアップをご用意しています。したがって、安心してWordPressとプラグインの新しいバージョンを試験することができます。または、ステージング環境で試験することも可能です。
WordPressのコアを更新するには、WordPressのダッシュボードで「更新」をクリックし、「今すぐ更新」ボタンをクリックします。
![WordPressコアを更新する](https://kinsta.com/wp-content/uploads/2016/10/update-wordpress-core-1.png)
最新のバージョンをダウンロードし、SFTP経由でアップロードすることにより、WordPressを手動で更新することもできます。
既存のインストールを更新するには下記に手順に従ってください。
- 古い
wp-includes
とwp-admin
のディレクトリを削除します。 - 新しい
wp-includes
とwp-admin
のディレクトリをアップロードします。 - 新しい
wp-content
フォルダから既存のwp-content
フォルダに個々のファイルをアップロードし、既存のファイルを上書きします。既存のwp-content
フォルダを削除しないでください。既存のwp-content
ディレクトリのファイルやフォルダを削除しないでください(新しいファイルで上書きされるファイル以外に)。 - 新しいバージョンのルートディレクトリから既存のWordPressルートディレクトリに新しいlooseファイルをすべてアップロードします。
WordPressのプラグインの更新方法について
WordPressプラグインを更新することは、WordPressコアを更新するのとよく似た手順です。WordPressのダッシュボードで「更新」をクリックし、更新するプラグインを選択して「プラグインの更新」をクリックします。
![WordPressプラグインを更新する](https://kinsta.com/wp-content/uploads/2016/10/update-wordpress-plugins-1.jpg)
同様に、プラグインを手動で更新することもできます。単にプラグインの開発者からまたはWordPressリポジトリから最新のバージョンを入手し、FTP経由でアップロードして、/wp-content/plugins
sディレクトリ内の既存のプラグインを上書きします。
開発者がプラグインの最新版を作成するとは限りませんので、ご注意ください。 WP Loopのチームは、WordPressのリポジトリの更新されていないプラグインの数を調べています。彼彼らの調査によると、リポジトリ内のプラグインの約50%は2年以上で更新されていません。
もちろん、そのプラグインが最新版のWordPressでは機能しないことわけではありませんが、原則として活発に更新されるプラグインを選択した方がいいです。時代遅れのプラグインは、セキュリティの脆弱性を含む恐れが高くなります。
![wordpress plugins not updated](https://kinsta.com/jp/wp-content/uploads/sites/6/2016/10/wordpress-plugins-not-updated-1.png)
プラグインなら、常に慎重を期す必要があります。「最終更新日」と「評価」を確認してください。例えば、下記の例のプラグインは古くて評価も低い為、お勧めできません。しばらくの間に更新されていないプラグインの上部にWordPressによる警告が表示される場合も多いです。
![古くて評価も低いWordPressプラグイン](https://kinsta.com/wp-content/uploads/2016/10/old-wordpress-plugin.jpg)
また、WordPressの最新のセキュリティアップデートや脆弱性の情報を常に入手できるには、下記を参照してください:
- WPセキュリティブロガー:セキュリティフィードを20以上集めた素敵なリソースです。
- WPScanの脆弱性データベース:WordPressのコア、プラグイン、またはテーマの脆弱性を10,000以上収集しています。
- ThreatPress:WordPressのコア、プラグイン、またはテーマの脆弱性の日常更新されるデータベース
- 公式WordPressセキュリティアーカイブ
![WordPressセキュリティアーカイブ](https://kinsta.com/wp-content/uploads/2016/10/wordpress-security-archive-1.png)
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を隠す](https://kinsta.com/jp/wp-content/uploads/sites/6/2016/10/changing-your-wordpress-login-URL-1.png)
ログイン試行を制限する方法について
管理者のログインURLを変更する上記の工夫は、ログイン試行の過半数を防ぎますが、回数制限を設けることも非常に効果的です。無料Cerber Limit Login Attemptsプラグインは、ロックアウト期間、ログイン試行の件数、IPホワイトリストとブラックリストを設定するのに便利です。
![WordPressにてログイン試行を制限する](https://kinsta.com/jp/wp-content/uploads/sites/6/2016/10/limit-login-attempts-wordpress-1.png)
よりシンプルなWordPressセキュリティソリューションをお探しの場合は、無料のLogin Lockdownプラグインが便利です。Login LockDownは、失敗したすべてのログイン試行のIPアドレスとタイムスタンプを記録します。同じIP範囲から短い時間内に特定の回数以上の試行が検出された場合、その範囲からのすべての要求に対してログイン機能は無効になります。それに、上記のWPS Hide loginプラグインと完全に互換性があります。
![login lockdown wordpress](https://kinsta.com/jp/wp-content/uploads/sites/6/2016/10/login-lockdown-wordpress-1.png)
基本的なHTTP認証を追加する方法について(htpasswd保護)
管理者ログインのロックダウンする別の方法は、HTTP認証を追加することです。WordPressログインページにアクセスするには、ユーザー名とパスワードが必要です。注:ボットによる攻撃を防ぐ効果的な方法ですが、電子商取引サイト及びメンバーシップサイトでは使用しないでください。
![.htpasswd認証ウィンドー](https://kinsta.com/wp-content/uploads/2019/06/htpasswd-authentication-prompt.png)
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保護を有効にする](https://kinsta.com/jp/wp-content/uploads/sites/6/2018/07/mykinsta-enable-passwd-protection0.png)
有効にした後、WordPressサイトにアクセスするには認証が必要になります。認証情報の変更またはパスワード保護機能の有効化もいつでもできます。
URLパスをロックダウンする
Cloudflare及びSucuriなどのウェブアプリケーションファイアウォール(WAF)をご利用の場合には、URLパスを制限することもできす。自分のIPアドレスだけがWordPress管理者ログインURLにアクセスできるようにルールを設定することができます。ウェブサイトのバックエンドへのアクセスが必要な為、この工夫も電子商取引サイト及びメンバーシップサイトでは使用しないでください。
- CloudflareはPro以上のアカウントにロックダウンURL機能を付けます。どのURLまたはパスにもルールが設定できます。
- SucuriにはブラックリストURLパス機能があります。次に自身のIPをホワイトリストに入れます。
6. 二要素認証を使用する
もちろん、二要素認証を忘れることはできません!パスワードの安全性にかかわらず、他人に発見される危険があります。二要素認証は2段階の手順で、ログインするのにパスワードだけでなく、もう一つの方法が必要となります。もう一つの方法は、ショートメッセージ(SMS、Cメール、Pメール)、電話、または時間ベースのワンタイムパスワード(TOTP)などです。攻撃者はあなたのパスワードも携帯電話も手に入れる可能性が低い為、要素認証はWordPressウェブサイトをブルートフォース攻撃から完全に保護してくれます。
二要素認証は2つの要素があります。まず、ウェブサーバープロバイダでのアカウントやダッシュボードがあります。他人がこれにアクセスできると、パスワードを変更したり、ウェブサイトを削除したり、DNSレコードを変更したり、あらゆる恐ろしいことができます。KinstaはAuthyを使用し、MyKinstaダッシュボードは二要素認証があります。
2段階認証の2番目の部分は、実際のWordPressのインストールです。当社は次のプラグインのどちらかをお勧めします:
上記の多くには携帯電話で利用可能な自身の認証アプリまります:
- Android Duo Mobile アプリ
- iPhone Duo Mobile アプリ
- Android Google Authenticator アプリ
- iPhone Google Authenticator アプリ
上記のプラグインのどちらかをインストールして設定した後に、WordPressのログインページにセキュリティコードを入力する追加の欄が付きます。一方、Duoプラグインの場合には、まずパスワードでログインしてから、Duo Push、通話、パスコードなどの認証方法を選択します。
この手段は、前述のデフォルトのログインURLを変更すること組み合わせることができます。そうすると、WordPressログインURLが関係者しか知らないものだけでなく、ログインするには追加の認証も必要です。💪
![WordPressの二要素認証ページ](https://kinsta.com/jp/wp-content/uploads/sites/6/2016/10/wordpress-two-factor-login-page.png)
二要素認証を利用することを忘れないでください。WordPressのセキュリティを強化する素晴らしい方法です。
7. 暗号化された接続にHTTPSを使用する – SSL証明書
WordPressのセキュリティ強化のよく見落とされている方法の一つは、SSL証明書をインストールしてウェブサイトのHTTPS化を行うことです。HTTPS(Hyper Text Transfer Protocol Secure)は、ブラウザまたはWebアプリケーションがウェブサイトに安全に接続できるようにするメカニズムです。クレジットカードを処理しないとHTTPSが不要だというよくある誤解があります。
ここで、電子商取引以外にもHTTPSが重要である理由をいくつか説明しましょう。Kinstaを含む多くのサーバー会社は、Let’s Encryptで無料のSSL証明書を用意することになっています。
![HTTPS暗号化の接続](https://kinsta.com/wp-content/uploads/2016/10/https-encrypted-connections-1.png)
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の安全でないウェブサイトのマーク](https://kinsta.com/wp-content/uploads/2016/10/chrome-not-secure-warning.png)
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_KEY
、SECURE_AUTH_KEY
、LOGGED_IN_KEY
及びNONCE_KEY
の4つのキーがあります。
WordPressをインストールすると、これらがランダムに生成されます。ただし、複数のマイグレーションの実績のある方、または他のユーザーからウェブサイトを購入した方は、新しいWordPressキーを作成するとよいでしょう。当社の最高のWordPressマイグレーションプラグインについての記事も是非ご確認ください。)
WordPressには、ランダムキーを生成できる無料のツールがあります。それで、wp-config.php fileファイルに保存されている現在のキーが更新できます。
![WordPressのセキュリティキー](https://kinsta.com/wp-content/uploads/2016/10/wordpress-security-keys.jpg)
WordPressのセキュリティキーについてご確認ください。
3. パーミッションを変更する
WordPressウェブサイトのルートディレクトリにある各ファイルは644に設定されていることが多いです。つまり、ファイルの所有者がファイルを読み込みも書き込みもでき、グループのユーザーが読み込みでき、他のユーザーが読み込みできます。WordPressのオンラインマニュアル(ドキュメント)によると、wp-config.php
ファイルをサーバー上の他のユーザーが読み込みできないようにアクセスパーミッションを440または400に設定する必要があります。FTPクライアントを使って簡単に変更できます。
![wp-config.phpのパーミッション](https://kinsta.com/wp-content/uploads/2016/10/wp-config-permissions-1.png)
サーバーにより、ウェブサーバーを実行しているユーザーがファイルを書き込む権限がないため、パーミッションの手順が異なる場合があります。不明な方は、ご利用のサーバー会社までご連絡ください。
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](https://kinsta.com/jp/wp-content/uploads/sites/6/2016/10/check-wordpress-xmlrpc-1.png)
完全に無効にするには、無料の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バージョンのソースコード](https://kinsta.com/jp/wp-content/uploads/sites/6/2016/10/wordpress-version-source-code-1.png)
次のコードを使用することにより削除できます。単にWordPressテーマのfunctions.php
ファイルに以下を追加するだけです。
function wp_version_remove_version() { return ''; } add_filter('the_generator', 'wp_version_remove_version');
また、(Kinstaのチームメンバーによって開発された)perfmatters のようなプレミアムプラグインを使用することもできます。ワンクリックでWordPressのバージョンを非表示にし、WordPressサイトの最適化さえできます。
![Perfmattersを使用してWordPressのバージョンを隠す](https://kinsta.com/wp-content/uploads/2016/10/hide-wordpress-version-perfmatters.png)
WordPressのバージョンが表示されるもう一つの場所は、すべてのWordPressのバージョンに含まれているデファクトのreadme.html
ファイルです(下図参照)。インストールのルート、domain.com/readme.html
にあります。FTP経由でこのファイルを安全に削除できます。
![readmeファイルにあるWordPressのバージョン](https://kinsta.com/jp/wp-content/uploads/sites/6/2016/10/wordpress-version-readme-1.png)
WordPress5.0をご利用の場合には、バージョン番号がもはやファイルに含まれていない為、この手順は適用できません。
11. 最新のHTTPセキュリティヘッダーを追加する
WordPressのセキュリティを強化するためのもう1つのステップは、HTTPセキュリティヘッダーを利用することです。これらは通常、ウェブサーバーレベルで設定され、ウェブサイトのコンテンツを処理するときの動作方法をブラウザに指示します。さまざまなHTTPセキュリティヘッダがありますが、最も重要なのは次のとおりです:
- Content-Security Policy
- X-XSS-Protection
- Strict-Transport-Security
- Strict-Transport-Security
- X-Frame-Options
- Public-Key-Pins
- X-Content-Type
さまざまなHTTPセキュリティヘッダーがありますが、最も重要なのは以下です。KeyCDNには、HTTPセキュリティヘッダーについての詳しい記事があります
Chromeのdevtoolsを使用し、ウェブサイトの最初の応答のヘッダーをチェックすることで、WordPressウェブサイトで現在使用されているヘッダーを確認できます。以下はkinsta.comの例です。strict-transport-security
、xx-content-type
と x-frame-options
ヘッダーを利用していることがわかります。
![HTTPセキュリティヘッダー](https://kinsta.com/wp-content/uploads/2016/10/wordpress-http-security-headers-1.jpg)
Scott Helmeの無料のsecurityheaders.io ツールを使用しても、WordPressウェブサイトをスキャンすることができます。これにより、現在ウェブサイトにあるHTTPセキュリティヘッダーが表示されます。追加する方法がわからない方は、ホストにお問い合わせください。
![HTTPセキュリティヘッダーのスキャン](https://kinsta.com/jp/wp-content/uploads/sites/6/2016/10/http-security-headers.png)
注: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](https://kinsta.com/jp/wp-content/uploads/sites/6/2016/10/wordpress-security-audit-log.png)
また、電子メール通知、ユーザーセッション管理、検索、レポートなどの機能を追加したプレミアムアドオンも用意されています。悪意のある人をロックアウトできるその他のWordPressセキュリティプラグインも是非ご確認ください。
13. データベースのセキュリティを強化する
WordPressデータベースのセキュリティ強化する方法もいくつかあります。1つ目は、データベース名を上手に設定することです。例えば、volleyballtricksというウェブサイトなら、デフォルトの4WordPressデータベース名はwp_volleyballtricks
になります。データベース名をもっと難しいものに変更すると、ハッカーがデータベースの詳細を識別してアクセスすることをより困難にすることができます。
2番目の推奨事項は、別のデータベーステーブル接頭辞を使用することです。デフォルトでは、WordPressはwp_
を使用します。これを例えば39xw_
に変更すると、より安全になります。WordPressをインストールすると、テーブルの接頭辞が設定できます(下記参照)。 ただし、既存のインストールでもWordPressテーブル接頭辞を変更する方法があります。Kinstaのお客様は、上記を実施する必要はありません。当社はウェブサイトとデータベースをロックダウンしています!
![wordpressテーブル接頭辞](https://kinsta.com/jp/wp-content/uploads/sites/6/2016/10/wordpress-table-prefix.jpg)
14. 常に安全な接続を使用する
何度も強調していますが、安全な接続を使用することは非常に重要です!WordPressホストがSFTP及びSSHを提供するなどの予防策を講じていることを必ずご確認ください。SFTP(Secure File Transfer Protocol、SSHファイル転送プロトコルともいう)とは、ファイル転送に使用されるネットワークプロトコルです。標準のFTPより安全な方法です。
お客様のデータが安全で暗号化された状態で転送されるよう、KinstaではSFTP接続のみご用意しています。ほとんどのWordPress専用サーバー会社は、SFTP用にポート22も使用しています。当社では、各ウェブサイトにMyKinstaダッシュボードで無作為化されたポートが割り当てられます。
![SFTPの情報](https://kinsta.com/jp/wp-content/uploads/sites/6/2018/07/sftp-details0.png)
また、ホームルータが正しく設定されていることを確認することも重要です。あなたのホームネットワークがハックされると、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の権限のスキャン](https://kinsta.com/jp/wp-content/uploads/sites/6/2016/10/wordpress-file-permissions.png)
以下はWordPressのファイルとフォルダのアクセス許可に関する推奨事項をです。より詳しい説明については、ファイルパーミッションの変更についてのWordPress Codexの記事を参照してください。
- すべてのファイルを644または640に設定します。例外:wp-config.phpは、サーバー上の他のユーザーが読み取ることができないように、440または400に設定する必要があります。
- すべてのディレクトリは755または750に設定する必要があります。
- アップロードダイレクトリーでも、777のディレクトリを一切設定してはいけません。
16. WordPressダッシュボードでの編集を無効にする
WordPressウェブサイトの多くは複数のユーザーと管理者がおり、WordPressのセキュリティがさらに複雑にあにます。非常に悪い習慣ですが、作者または編集者にも管理者アクセス権を与えることです。残念なことに、よくある話です。故障を起こさないようにユーザに適切な権限を与えることが重要です。
WordPressの「外観」を微調整したくて誤りをして、「死の白い画面」が表示されたことが誰もがあるでしょう。てしまったファイルをローカルで編集し、FTP経由でアップロードする方が安全です。もちろん、まず開発サイトで試験した方がベストです。
![WordPressの外観変更](https://kinsta.com/wp-content/uploads/2016/10/wordpress-appearance-editor.jpg)
なお、ある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](https://kinsta.com/jp/wp-content/uploads/sites/6/2016/10/hotlinking.jpg)
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の自動バックアップ](https://kinsta.com/jp/wp-content/uploads/sites/6/2018/07/backups-in-mykinsta0.png)
あなたのサーバー会社にはバックアップがない場合は、プロセスを自動化するために使用できる人気のあるWordPressサービスとプラグインがいくつかあります。
WordPressのバックアップサービス
WordPressのバックアップサービスの多くは、毎月の料金が安く、バックアップをクラウドに保存しています。
- VaultPress (Automatticチームによるものですが、Jetpackの一分になりました)
- CodeGuard
- BlogVault
WordPressのバックアッププラグイン
WordPressバックアッププラグインを使用すると、FTP経由でバックアップを取得したり、Amazon S3、Google Cloud Storage、Google Drive、Dropboxなどの外部ストレージソースと統合することができます。インクリメンタルソリューションを使用してリソースの使用量を減らすことを強くお勧めします。
19. DDoS防止
DDoS攻撃とは、DOS攻撃の一種で、複数のシステムを使用して1つのシステムを対象にサービス拒否(DoS)攻撃を引き起こすものです。DDoS攻撃は新しいものでなく、Britannica によると、最初に記録された事件は2000年の初めにさかのぼります。ウェブサイトがハッキングされたときとは違って、この攻撃はウェブサイトに害を及ぼさず、数時間または数日間ダウンさせるだけです。
それでは、どうすればいいでしょうか。まず、Cloudflare 及びSucuriのような信頼できる第三者のセキュリティサービスを使用した方がいいです。事業を運営している場合は、プレミアムプランに投資した方が良いでしょう。
![CloudflareとSucuriのDDoS保護](https://kinsta.com/jp/wp-content/uploads/sites/6/2016/10/ddos-protection-cloudflare-sucuri-1.png)
彼らの高度な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攻撃](https://kinsta.com/jp/wp-content/uploads/sites/6/2014/04/ddos-attack.png)
お客様はSucuriのウェブアプリケーションファイアウォールをウェブサイトに実装したとき、バンドウィズとリクエストが急激に落ち(以下をご参照)、それ以降は再発がありませんでした。このような問題が発生すると、ウェブアプリケーションファイアウォールは間違いなく良い投資または時間の節約です。
![SucuriのWAFを追加した後](https://kinsta.com/jp/wp-content/uploads/sites/6/2014/04/after-adding-waf.png)
まとめ
ご覧のとおり、WordPressのセキュリティを強化する方法は数多くあります。パスワードを上手に決め、コアとプラグインの最新版を使用し、安全なマネージドWordPress専用サーバー会社を選択することは、WordPressウェブサイトの安全のためにできることのほんの一部です。お客様の多くにとっては、WordPressウェブサイトはビジネスと収入の両方です。従って、時間をかけて、上記のセキュリティのベストプラクティスのいくつかを早ければ早いほど行った方が良いでしょう。
見逃してしまった重要なWordPressのセキュリティに関する工夫をご存知ですか。ご意見をお寄せください。
コメントを残す