3/20 被リンクサービスリスト更新 新たに1サイトを追加

WordPressのユーザー名を隠す方法|プラグインなしでも投稿者アーカイブを無効化

WordPressのユーザー名を隠す方法
この記事で分かること

・プラグインなしでユーザー名を隠す方法
・投稿者アーカイブを無効化する方法
・「Edit Author Slug」を使ってユーザー名を隠す方法

ブログのセキュリティ対策をするなら、まずユーザー名は隠すようにしましょう。

WordPressはユーザー名とパスワードの2つを使用してログインします。ところが、ユーザー名は初期設定のままだと誰でも確認できちゃうのです。あとはパスワードさえ分かればログインできる訳なので、セキュリティ上問題があるのは明白ですよね。

そこで今回は、プラグインなしでユーザー名を隠す方法と、ユーザー名を隠すプラグイン「Edit Author Slug」の導入方法をご紹介します。

目次

ユーザー名を晒すリスク

WordPressサイトには「投稿者アーカイブ」が標準で設置されています。投稿者アーカイブはユーザー別の投稿を一覧表示してくれるページです。

ところが、この投稿者アーカイブのURLには「ユーザー名」が使われています。しかも、ページへのリンクを貼っていなくても “https://ドメイン名/?author=1” からリダイレクトされるため、誰でも簡単にユーザー名を確認できちゃいます。

投稿者ページのURLに移動する
リダイレクトで投稿者アーカイブに移動すると…
投稿者ページのURL
末尾にユーザー名が表示される

ブルートフォース攻撃のリスクが上がる

ブルートフォース攻撃の図解

「ユーザー名がバレてもパスワードがあるから問題ないでしょ」と思っていませんか?

ユーザ名を知られれば、ログインのために必要な試行パターンが減り、ブルートフォース攻撃の成功率が上がってしまいます※ブルートフォース攻撃:様々な文字列の組み合わせを入力する総当たりのハッキング

不正ログインを許さないためには、ユーザー名とパスワードの両方を必ず隠すようにしましょう。また、ログインの試行回数を制限する「Limit Login Attempts Reloaded」も併せて導入すれば、ブルートフォース攻撃のリスクはグッと下がりますよ。

ユーザー名を隠す方法

それでは本題のユーザー名を隠す方法を紹介していきます。手順としては以下の2つです。

  1. サイト上のユーザー名を隠す
    • ブログ上の表示名をニックネームに変更する
  2. 投稿者アーカイブのURLを隠す
    • 投稿者アーカイブを無効化する(一人でサイト運営)
    • 投稿者アーカイブのURLだけ変更する(複数人でサイト運営)

1、サイト上のユーザー名を隠す

著者名はサイトのあらゆる場所で使用されます。投稿者アーカイブはもちろんのこと、使用しているテーマによっては記事の冒頭などにも表示できます。

ところが、初期設定のままだと著者名にユーザー名が使用されています。そのままにしておくとユーザー名が丸わかりなので、忘れず変更しておきましょう。

ブログ上の表示名をニックネームに変更する

著者名はサイドバーの ユーザー> プロフィール から設定可能です。

WordPressのブログ上の表示名を変更する

「ブログ上の表示名」はユーザー名、本名、ニックネームの三つから選択可能です。ニックネームか本名を選択しておきましょう。

2、投稿者アーカイブのURLを隠す

次に、以下のどちらかの方法で、投稿者アーカイブのURLからユーザー名がバレないようにします。

  • 投稿者アーカイブを無効化する
  • Edit Author Slugで投稿者アーカイブのURLだけ変更する

投稿者アーカイブを無効化する

複数人で運営している時しか投稿者アーカイブは役に立ちません。一人でサイトを運営しているなら、投稿者アーカイブ自体を無効化しちゃいましょう

やり方は色々とありますが、今回は一番簡単なfunctions.phpに追記する方法を紹介します。

手順としては、以下のコードをfunctions.phpに貼り付けるだけ。これで投稿者アーカイブへのアクセスを禁止してリダイレクトします。リダイレクト先はTOPページと404ページの二通り用意したので、どちらか片方だけご利用ください。

作業前にはバックアップ推奨
・貼り付ける場所:外観 > テーマ編集 > 子テーマのfunctions.php
・テーマ側の指定した箇所に追記しましょう
・使用するコードは二つの内どちらか片方

・TOPページへリダイレクト
add_filter( 'author_rewrite_rules', '__return_empty_array' );
function disable_author_archive() {
  if( $_GET['author'] || preg_match('#/author/.+#', $_SERVER['REQUEST_URI']) ){
    wp_redirect( home_url( '/' ) ); //TOPページへリダイレクト
    exit;
  }
}
add_action('init', 'disable_author_archive');
・404ページへリダイレクト
add_filter( 'author_rewrite_rules', '__return_empty_array' );
function disable_author_archive() {
  if( $_GET['author'] || preg_match('#/author/.+#', $_SERVER['REQUEST_URI']) ){
    wp_redirect( home_url( '/404.php' ) ); //404ページへリダイレクト
    exit;
  }
}
add_action('init', 'disable_author_archive');
SEO SIMPLE PACKなら簡単に設定可能

SEO用のプラグイン「SEO SIMPLE PACK」を利用している方は、一般設定からワンクリックで投稿者アーカイブを無効化することができます。有料テーマのSWELL利用者は一度確認してみてください。

SEO SIMPLE PACKの投稿者アーカイブ設定

Edit Author Slugで投稿者アーカイブのURLを変更する

「Edit Author Slug」というプラグインを利用して、URLのユーザー名が記された部分だけ変更するという方法です。どうしても投稿者アーカイブを使いたいという方は、こちらの方法がオススメです。

プラグインはテーマ・他のプラグイン・WordPressのバージョン次第では、正常に動作しないことがあります。導入前にはバックアップを取っておき、自己責任で使用してください。

Edit Author Slugの設定・使い方
(1)インストール・有効化する
Edit Author Slugのインストール

水色の背景が目印です。

(2)ユーザーのプロフィールを開く
ユーザーを選択する

有効化出来たら、サイドバーから ユーザー> プロフィール を選択します。

(3)投稿者スラッグを変更する
Edit Author Slugで投稿者スラッグを変更する

プロフィール設定の下の方に、「投稿者スラッグ編集」が追加されています。。

初期設定でユーザー名になっているので、他のものに変更しましょう。ここで選択した投稿者スラッグが投稿者アーカイブのURLの末尾になります。(今回は無難に”user-name”としています)

変更が済んだらプロフィールを更新をクリックして設定完了です。

(4)動作を確認

実際にプラグインが動作しているか確認してみましょう。
ブラウザのURL欄に

https://ブログのドメイン名/?author=1

と入力して、先ほど設定したスラッグが表示されたらOKです。

Edit Author Slugの動作確認

まとめ

今回はセキュリティ上大切な、サイト訪問者からユーザー名を隠す方法について紹介しました。

  • WordPressの初期設定だと、ユーザー名を誰でも知ることができる
  • ユーザー名の漏洩はブルートフォース攻撃(総当たりログイン)のリスクにつながる
  • WordPress設定から「ブログ上の表示名」をユーザー名から変更する
  • (投稿者アーカイブが不要なら)functions.phpを編集して無効化する
  • (投稿者アーカイブが必要なら)Edit Author SlugでURLを変更する

ユーザー名を知られなければログインを突破されるリスクは、かなり軽減します。プラグインを使わなくてもユーザー名は簡単に隠せるので、サイトを守るためにもぜひやっておきましょう。

目次
目次
閉じる