テーマに関わらず、WordPressで設定しておいた方がよい項目について、インストール後、プラグインなどを使わず管理画面からすぐに対策できること、その後に行った方が良いことの2つを紹介します。
特に難しい設定ではありませんので、頑張って作業しましょう。
もちろん基本機能とちょっとしたコードを追加するだけですから、【OnePress】テーマでも利用できる方法です。
最低限行うべきセキュリティ設定
WordPressは世界中の多くの人に利用させているサイト管理ツール(CMS)です。便利で簡単で日進月歩で更新されていくことから人気がある反面、共通のツールだからこそ起こるセキュリティ懸念もあります。
とはいえ、WordPressはセキュリティ面についても本当に細かく更新が行われていますから、問題のある追加機能などを使わなければ(初期状態のままであれば)、不正にログインされてサイト管理側から何かをされない限り、それほど危惧する必要はないかも知れません。
ただ、この不正ログインに対しては、複数の人がサイトへログインして何かをする際の利便性を保つために甘いところがあると個人的に感じます。
そこで、ここではセキュリティ関係の追加機能などを一切使わずにできる不正ログインセキュリティ対策を2つ紹介しておきます。
サイトとユーザーのメールアドレスを別にする
結構後々になってそのことに気付く人が多いのですが、自動インストール、手動インストールに関わらず、初期設定では「サイト管理者のメールアドレス」と「最初に作られる管理ユーザーのメールアドレス」が一緒になっています。
※「サイト管理者のメールアドレス」は管理画面から【設定】をクリックした画面で確認できます
※「最初に作られる管理ユーザーのメールアドレス」は管理画面から【ユーザー】→該当するユーザーにマウスオーバーした時に出る【編集】リンクをクリックした画面で確認できます。
これが共通だとどういうことが起こるかというのを挙げておくと
- ログインはユーザー名のほか、メールアドレスとパスワードでもできるので、不正ログインされる可能性が高まる
- 問い合わせフォームなどを使う際、特別な設定がなければ、問い合わせされた時のメールは「サイト管理者のメールアドレス」へ送信されるため、そこから返信することで「最初に作られる管理ユーザーのメールアドレス」を明かしてしまうことになる
セキュリティ面からも異なったものにしておきましょう。
ログインを「メールアドレス」+「パスワード」のみに限定する
前項でちらっと触れましたが、WordPressの初期状態では、ログインするのに「ユーザー名」と「メールアドレス」のどちらかと、パスワードで認証を行うようになっています。
また、初期状態では訪問者に表示する投稿作者のアーカイブ(過去の投稿一覧)のURLの末尾があろうことかユーザー名そのものになっています。
このことは、WordPressというツールの動作に興味を持つ方なら周知の事実。これでは先ほどのメールアドレス問題と同様簡単にログイン用のネタを与えてしまうことになってしまいますから、前述のメールアドレスを別にする措置を行った上で、ログインにはメールアドレスのみを使うという設定をします。
初心者の方にはちょっとハードルが高いかも知れませんが、手順通りに行えば決して難しくありませんので、チャレンジしてみてください(万が一エラーが起きた場合には自身で対処する必要がありますから、それなりの知識が必要です)
管理画面から【外観】→【テーマエディタ】を開きます。
画面右側のリンク一覧にある【functions.php】をクリックします。
ザーっといろいろなコードが書かれているので、一番下へ行を追加して、以下のコードをコピペします。
/********** ログインをメールアドレスのみにする **********/
if ( !function_exists( 'hab_force_email_login' ) ):
function hab_force_email_login( $user, $username, $password ) {
//「ユーザー名またはメールアドレス」に入力された情報を email情報 としてユーザー検索
$user_data = get_user_by( 'email', $username );
if( !empty( $user_data ) ) {
//email情報からユーザーが見つかればログイン認証用の関数にデータを渡す
return wp_authenticate_username_password( null, $user_data->user_login, $password );
}
//emailでユーザー取得できなかった場合
return wp_authenticate_username_password( null, '___', $password );
}
add_filter('authenticate', 'hab_force_email_login', 20, 3);
endif;
※行う前に管理ユーザーのメールアドレスを再チェックしておいてください
コードで行っていること
上記のコードでは以下のような動作をするようになっています
- 入力されたユーザー名またはメールアドレスの情報をすべてメールアドレスとして扱うようにします
- 1を元にユーザーの検索をします
- 2の情報とパスワードが一致した場合にのみログインできるようにします
「メールアドレスでログインするんだよ!」とか、失敗時に「メールアドレスを入力してね!」とフォームに表示される文字列を変更してしまうと、逆に不正ログインのヒントを与えてしまうことになりますから、あえて何も変更を加えていません。
冒頭で書いた通り、WordPressで作成したサイトでの不正行為のほとんどは、管理者権限でログインされてしまったことによる改変や改ざんと、訪問者が入力できる窓(コメントや何かのフォーム)がほとんどですから、まずは不正ログインさせない工夫をしておきましょう。