おはようございます!
7月8日、月曜日。晴れ。
最高気温37℃。。。(; ゚Д゚)ガクガクガク
暑すぎて震えます。。
心頭滅却すれば火もまた涼し、、、うん無理。
エアコンのお世話になって今日も学んでまいります。
本日の教材もこちら、
この書籍もラスト2セクションのみとなりました。
流さずにしっかりと学んでいきたいと思います。
CHAPTER9 WordPressを効率的に運用する
SECTION04 Webサイトのセキュリティを高める
セキュリティ対策においてチェックすべき項目
・セキュリティ対策に関する情報
確認してみたが2つとも繋がらず、、、
URLも間違ってない、ない。うん。間違いない。
とりあえず、残しておきます。
・WordPressのバージョンを常に最新版にする
脆弱性が発見されるたびに修正→バージョンアップされるので、WordPressが更新された場合はすぐにアップデートすること。
・信頼できるプラグインを利用する
プラグインの中には悪意のあるプログラムが仕込まれているものもあるため、インストールする前に必ず調べること。
以下の土井様のサイトを参考に確認するとよい。
ちょろっと書くと、「更新頻度は高いか」「信頼できる開発元か」など
・ユーザー名、パスワードを簡単な文字列にしない
まあこれはね。
・ファイルやディレクトリのアクセスを制限する
可能な限り制限するのが望ましい。特に「wp-config.php」は最も重要なファイルなので、可能ならばパーミッションを「400」、もしくは「440」に設定しておく。
※「パーミッション」っていうワードが急に普通に出てきて戸惑うけど(私はわかるけども・・・)、ざっくりいうと『権限設定』とか『承認設定』って感じかな。
・wp-config.php のディレクトリ階層を変える
初期状態では、「wp-config.php」が公開ディレクトリに配置されている。WordPressは、1つ上のディレクトリ階層にwp-config.phpを配置しても自動的に読み込まれるため、可能であれば非公開ディレクトリに移動させておくこと。
<サーバーの/var/www/~が公開ディレクトリの場合>
・移動前
/var/www/wp-config.php
/var/www/index.php
/var/www/wp-content/~
・移動後
/var/wp-config.php ※1階層上げておく
/var/www/index.php
/var/www/wp-content/~
・.htaccessでwp-config.phpへのアクセスを制限する
wp-config.phpのディレクトリ階層を変更できない場合
→wp-config.phpと同階層にある「.htaccess」ファイルに追記してアクセス制限する。
<.htaccessに追記する内容>
<files wp-config.php>
order allow,deny
deny from all
</files>
⇒さらに「.htaccess」ファイルのパーミッションを「600」または「644」にする。
・ファイル編集を無効にする
WordPressのダッシュボードでは、[外観]→[テーマエディター]からPHPファイルを編集することが可能なため、以下の内容をwp-config.phpに記述し編集機能を無効にする。
<wp-config.phpに追記する内容>
define ( ‘ DISALLOW_FILE_EDIT ‘, true );
プラグインでセキュリティ対策をする
「SiteGuard WP Plugin」
[プラグイン]→[新規プラグインを追加]→「SiteGuard WP Plugin」を検索→インストール→有効化
・SiteGuard WP Pluginのダッシュボード
・ログインページを変更する
管理画面のログインURLは「https://example.com/wp-login.php」のように決まっている。
つまり、サイトをWordPressで構築していることがわかれば、ログイン画面のURLは容易に推測できてしまう。
そこで、「ログインページ変更」にて、管理画面のURLを変更する。
※ただし、マルチサイト機能には対応していないため、マルチサイトを設定している場合この設定を有効にはできない。
・画像認証を追加する
例えば、ログインする際、「ログインページ」-「ひらがな」に設定しておくと、表示された文字を正しく入力しないとログインができなくなる。
⇒人間以外のロボットからの攻撃に対するセキュリティが向上
※これもマルチサイト機能には対応していない
・ログインロックを設定する
悪意のあるロボットは、ユーザー名やパスワードを変えながら何度もログインを試みる。この機能を有効にすれば、ログインが失敗したときに、次のログインまでの時間や回数を制限できる。
・ユーザー名漏洩を防止する
WordPressは「https://example.com?author=ユーザーID」にアクセスすると「https://example.com/author/ユーザー名/」にリダイレクトする。
例えば、「https://example.com?author=1」にアクセスすると「https://example.com/author/nakasima/」にリダイレクトする。
攻撃者はこれを悪用して、管理画面にログインする際のユーザー名を調べようとする。
通常、ログイン画面で必要な情報は「ユーザー名またはメールアドレス」と「パスワード」の2つ。つまり、ユーザー名さえわかってしまえば、攻撃者はパスワードの推測だけに専念できる。
なので、ユーザー名は伏せておいたほうが安全。
<ユーザー名漏えい防御>
[有効]にすると「https://example.com?author=ユーザーID」にアクセスしてもユーザーページにリダイレクトしないようになる。
また、オプションの「REST API 無効化」にチェックをいれると、ユーザー取得のREST APIである「http://example.com/wp-json/wp/v2/users」が無効になる。
SECTION05 Webサイトを高速化する
Webサイトのパフォーマンスを向上する
Webサイトが遅い(重い)場合、何が原因なのかどこがボトルネックになっているのかを把握することが大切。
・WordPressでページが表示されるまでの仕組み
どこがボトルネックなのか、どのようなパフォーマンスを改善したいのかを意識して取り組むことが大切。
・プラグインを多用しない
WordPressを使っていて陥りやすいのが、「プラグインの多用」。
あれもこれも導入すると、処理が増えパフォーマンスに影響が出る可能性があるので、ケースバイケースで考え、不必要なプラグインはインストールしない。
Webサイトのパフォーマンスを診断する
まずはどこがボトルネックになっているのか調べてみる。
<Googleのパフォーマンス診断ツール>
URL:https://pagespeed.web.dev/
<分析結果>
改善できる項目には、診断結果から対応できるものが提案される。
画像を最適化する
[プラグイン]→[新規プラグインを追加]→「Smush – Lazy Load Images, Optimize & Compress Images」を検索→インストール→有効化
・アップロードされている画像を圧縮する
[BULK SMUSH]ボタンをクリックすると、すでにアップロードされている画像を圧縮できる。
とあるが、クリックしても設定画面に飛ばされるだけで何かが動いている感じがしない。また、ほぼ英語で書かれているため、使い勝手はよくない。。
ファイルをキャッシュして高速化する
一度表示したデータをキャッシュとして一時的に保存しておくと、次にアクセスがあったときに、動的にページを生成せずに表示できる。
「WP Super Cache」プラグイン
[プラグイン]→[新規プラグインを追加]→「WP Super Cache」を検索→インストール→有効化
・WP Super Cacheを設定する
「キャッシング停止」から「キャッシング利用(推奨)」に変更し、「ステータスを更新」ボタンを押下⇒ページキャッシングが開始される
・WP Super Cacheの詳細設定
・ログイン中のユーザーはキャッシュを無効化する
「高度な設定」タブの「キャッシュ制御」にて「ログイン中のユーザーに対してはキャッシュを無効化する」を選択すると、ログインユーザーに対してはキャッシュを表示しなくなる。
※選択していないと、ファイル更新時にもキャッシュファイルが表示されてしまい、作業者が最新ファイルを確認できなくなる。
・キャッシュさせないページを設定する
・キャッシュを削除する
CDNサービスを導入する
大手の「Cloudflare」は無料で使え、WordPressのプラグインもある。
<Cloudflare>
・自動プラットフォーム最適化サービスとは
サーバーの負荷が大きくなり始めたら「Cloudflare APO」サービスもオススメ。
おわったーーーーーー!!!
最後はちょっと駆け足でしたが、WordPressについて1冊まるまる学ぶことができました。
入門書よりかはもう少し深い内容が記載されていて、時間はかかりましたがWordPressのレベルが上がった感は確かに感じています。
ページ数にしてCHAPTER1~CHAPTER9までで356ページ。達成感と充実感が半端ないです。
よくやったよほんとに
コメント