セキュリティ対策は、「堅牢性」と「利便性」が相反する事がほとんどです。セキュリティを強化するほど安全性は高まりますが、使いやすさが失われていく可能性があるということです。そのため、使いやすさを極力落とさずセキュリティを高めていくためのバランスが重要となります。
本記事では、プラグインを使わず、ブログサイトの公開準備中にも対応しておきたいセキュリティ対策となります。1つでも参考になる情報となれば幸いです。
セキュリティ対策の重要性
WordPress が狙われやすい理由
WordPress は、日本でも世界でも現在もっともシェア率が高く有名なウェブコンテンツ管理システム(CMS)です。他にも多くの CMS がありますが、WordPress とのシェア率では大きく引き離されています。2位以降に Shopify、Joomla、Wix、squarespace と続きますが、いずれも10倍以上の差があって他の CMS の追随を許さない状況です。
CMSシェアランキングトップ5 - 2021年10月時点
そして、利用者が多くなれば、悪さをする側からすれば脆弱性(システムの弱い部分や不具合)を探して攻撃した時の効果も大きくなります。現在、WordPress のシェア率が断トツに高く、狙われやすくなってしまいますね。
過去にどのような問題があったのか!?
2017年に報告された脆弱性による被害では、改ざんされたページ総数は150万を超えているとも言われています。脆弱性はバージョンアップによる対策が必要なケースが多くありますが、他にも設定不足やミスによってウェブサイトの改ざんへとつながってしまうケースも存在します。
参考:2017年2月に掲載されたWordPress の脆弱性と対策 - IPA 情報処理推進機構より
ウェブサイトの改ざんがされたらどうなるか?
被害にあったらどのような対応が必要になるのでしょうか?
例えば、「改ざんされたページを確認して修正する」「不正にサーバにアップロードされたファイルを調査して削除する」「同じ被害を受けないように原因を調べて対策する」等など対応に大きな負担がかかることが考えられます。
そのような可能性を少しでも無くしておくことがサイトの安定運営へとつながります。
セキュリティ対策パターン例
WordPress で行なえる対策は、管理パネルで簡単に設定できるものから専門知識が必要なファイル編集まで多岐に渡ります。使用する環境によっては表示に影響のでるケースもありますので、設定の際にはもとに戻せるようにバックアップや設定変更前の状態を控えておくことをお勧めします。
■対策できる個所の例
- Webサーバ(.htaccessなど)
- WordPress 管理パネル
- CSS/PHPファイル
- WordPress プラグイン
やっておきたいセキュリティ対策4選
ログインパスワード強化
後から変更できるからと最初に簡単なパスワードを設定しておいて、そのままになっている事はありませんか? 初期のアカウントは管理者権限を持っていますので、不正にログインされたら、、、、考えたくないですね。パスワードの変更は管理画面から簡単にできますので強化しておきましょう。
設定難易度 ★☆☆☆☆
設定の効果 ★★☆☆☆
パスワードの強化だけでは昨今の対策としては、やらないよりは良いというレベルですが、効果は確実にあります。
●STEP.1
管理画面の右上のアカウントにカーソルを移動して表示される「プロフィールを編集」をクリックします。
●STEP.2
プロフィール編集画面を下にスクロールしていき、”新しいパスワード”項目の「新しいパスワードを設定」をクリックします。
●STEP.3
パスワードの入力画面となりますので、新しいパスワードを入力します。
文字、数字、特殊文などを組み合わせて設定する事で強力なパスワードになります。
また、自動でランダムに強力なパスワードを生成する機能が有効となっている事もあります(自動で表示されます)ので、そちらを使う事も可能です。パスワードを控え忘れないようにして下さい。
もしパスワードを忘れてしまったら?
設定したパスワードを忘れてしまったら、ログイン画面(下左図)の「パスワードをお忘れですか?」を選択して、パスワード再発行画面(下右図)の通りに「ユーザー名」もしくは「メールアドレス」を入力して「新しいパスワードを取得」をクリックします。
登録しているメールアドレスに再設定のメールが届きますので、パスワードを再設定すれば戻ります。
投稿者情報の非表示
WordPress はインストール後の初期設定では、ログインユーザー名が投稿記事などで表示されます。何も対策してないと、ログイン画面もわかりますので、前項のパスワード強化もしていなかったら、、、考えたくないですね。
ここでは、スタイルシート(style.css)を使ってユーザー情報を非表示にする手順です。投稿者情報を非表示できるテーマもありますので、やりやすい方で設定しておきましょう。
また、もしもの時に設定を戻せるように、事前にバックアップを行ないましょう。
設定難易度 ★☆☆☆☆
設定の効果 ★★★☆☆
●STEP.1
外観>テーマエディター>スタイルシート(style.css)を選択します。
●STEP.2
固定ページ、記事ページ、それぞれを以下の内容をスタイルシートに記述します。
/* 固定ページから著者情報を消す */
.page .author-info {
display: none;
}
/* 記事ページから著者情報を消す */
.post .author-info {
display: none;
}
設定を保存して、投稿記事、記事一覧(新着や関連)などで表示が全て消えているか確認しましょう。
管理画面へのアクセス制限(.htaccess)
Webサーバの設定ファイルを使って、アクセス制限をかけられます。Webサーバに Apache (互換含む)を使用もしくは、レンタルサーバによっては .htaccess の設定を管理パネル等から提供している場合でも同様の設定が可能です。
また、もしもの時に設定を戻せるように、事前にバックアップを行ないましょう。
エックスサーバー 、mixhost 、ロリポップ!、それぞれレンタルサーバによって注意事項が異なりますので、設定を戻す方法も合わせて確認しておくことをお勧めします。
ログイン管理画面
例えば、プラグインの SiteGuard WP Plugin で login.php の認証を強化できますが、こちらは管理画面を表示させない対策となります。接続するIPアドレスを制限するため、プラグイン無しの場合は是非設定しておきたい内容です。併用すればプラグインに脆弱性が見つかった場合の対策にもなるため、安全度があがります。
※IPアドレスが変わると管理画面が表示できなくなりますので、その時はIPアドレス情報の更新が必要です。
設定難易度 ★★☆☆☆
設定の効果 ★★★★☆
WordPress をインストールしているディレクトリにある .htaccess ファイルに記述することで、特定のIPアドレスからのアクセスを除き、ログイン管理画面へのアクセスをトップページに転送させます。
.htaccess ファイル内の「# BEGIN WordPress」から始まる行の前に記述します。
RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_ADDR} !^000\.000\.000\.000$
RewriteRule ^wp-login.php https://%{HTTP_HOST} [R=301,L]
000 のところに、インターネットに接続している時のIPアドレスを指定してください。利用している環境のIPアドレスが不明な時は、「IPアドレス 確認」などネットで検索して確認できるサイトを使って確認してみて下さい。
参考:https://www.cman.jp/network/support/go_access.cgi
確認したIPアドレスが、「10.20.30.40」だとしたら以下のように設定を行ない保存します。
RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_ADDR} !^10\.20\.30\.40$
RewriteRule ^wp-login.php https://%{HTTP_HOST} [R=301,L]
投稿者のアーカイブページ
WordPress では、投稿者ごとに投稿情報をまとめる機能(投稿者アーカイブ)があり、特定の引数をつけてサイトにアクセスするとユーザー名を含むURLにリダイレクト( https://your-domain/author/ユーザー名/
)されます。標準では、ユーザー名=ログインアカウント となるため、アーカイブページにアクセスさせたく無い場合は対策しておくことをお勧めします。
設定難易度 ★★☆☆☆
設定の効果 ★★★★☆
.htaccess ファイル内の「# BEGIN WordPress」から始まる行の前に記述します。
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^author=([0-9]*)
RewriteRule ^(.*)$ https://your-domain/? [L,R=302]
※your-domain は、運用しているサイトのドメイン名に置き換えて下さい。
いかがでしたでしょうか。
ユーザー名やログイン管理画面という初期の運営から意識しておきたいセキュリティ対策4選でした。少しでも安心に安定的な運営ができるよう参考になる情報があれば幸いです。
コメント