左坊のメモ帳

WordPress など

*

【セキュリティ】WordPressのauthor情報を非表示にする

      2018/11/07

対策をしないとログインIDがまるみえです

WordPressのauthor情報(投稿者アーカイブ)ページへのアクセスを禁止(トップページへリダイレクト)する方法です。

スポンサーリンク

author情報とは

author情報とは、Wordpressの登録ユーザー(管理者含む)の投稿者アーカイブページのことです。

どのようなコンテンツかというと、以下のURLで実際に見てもらうと分かります。

http://サイトURL/?author=1
https://サイトURL/?author=1

「author=1」とあるように、この数字を増やしていけば、Wordpressに登録している全ユーザーの投稿者アーカイブページが見れます。

では、このページの何が問題なのかというと、実はコンテンツではなく、そのURLの文字列です。

アドレスバーに入力した時は「?author=1」だった箇所が、リダイレクトされて「ユーザー名」に変換されていると思います。

実はこれ、登録ユーザーの「ユーザー名」そのものです。
そして「ユーザー名」はWordpress管理画面のログインIDでもあります。

つまり、「管理者権限のログインIDをインターネット上で晒してしまっている」状態と言えるのです。

ログインIDとパスワードでログインセキュリティを保っているので、その片方であるログインIDがばれているというのは、ちょっと危険な状態と言えますよね。

プラグイン「Edit Author Slug」で対策

ではその対策ですが、お手軽に対策するなら、「Edit Author Slug」というプラグインが有名です。

これは、authorページURLの「ユーザー名」部分を編集できる、というものです。

欠点は、更新が止まっていること。
(Wordpress4.9.8の時点では、インストール、有効化、動作そのものは問題ありませんでした。)

プラグイン1つで対策できるので、お手軽ですし、潜在的なバグやセキュリティホールの可能性はありますが、ログインIDを晒している状態よりはマシ、だと思いますので、やっておいたほうがよいと思います。

Edit Author Slugの設定箇所

プラグインをインストール・有効化すると、「設定」「ユーザープロフィール内の項目」の2箇所に設定する欄ができます。

「設定」>「Edit Author Slug」の設定項目

いくつか設定項目がありますが、もしWordpressにログインする(投稿する)のが自分一人でしたら、デフォルトのまま(何もいじらない)でOKです。

  1. 投稿者ベース(デフォルト「author」)
  2. ※URLの赤字部分を指定できます。
    ※http://blog.saboh.net/author/author-slug/

  3. 役割を元にした Author Base(デフォルトOFF)
  4. ※権限グループ毎に投稿者ベースを設定できます。

  5. 自動更新(デフォルトOFF)
  6. ※自分の投稿者Slugを編集できないユーザーが、自分のプロフィールを編集保存したタイミングで、投稿者Slugを変更します。
    ※どのようなSlugにするかは以下の中から選択できます。

  7. 一括更新
  8. ※投稿者Slugを一括で更新します。
    ※どのようなSlugにするかは以下の中から選択できます。

ユーザープロフィールページ内の設定項目

自分のプロフィールページを開きます。

下の方にスクロールしていくと、「Edit Author Slug」という欄があるので、「カスタム設定」にチェックを入れて、表示したい文字列を入力します。

「プロフィールを更新」をクリックしたら、ブラウザのアドレスバーに「http://サイトURL/?author=1」と入力してみて、「http://サイトURL/author/hogehoge」のようにリダイレクトされていればOKです。

もしうまくリダイレクトされない場合は、設定変更前の状態がブラウザにキャッシュされているかもしれませんので、新たにシークレットウィンドウ(Chrome)やプライベートウィンドウ(Firefox)を開いて確認してみてください。

「Edit Author Slug」を使った対策は以上です。

プラグイン無しで対策

更新されていないプラグインはちょっと不安、、、という方は、プラグイン無しでの対策をおすすめします。

作業自体は非常に単純なのですが、うまくいかないとサイトが破損します。(たぶん、画面が真っ白になります。)

また、FTPでサーバーにログインできる必要があります。

FTPツールのインストール、設定方法はこちら

まず、FTPでサーバーにログインして、ファイルをダウンロードします。

/ドメイン名/public_html/wp-content/themes/使用しているテーマ名フォルダにあるfunctions.phpというファイルです。

バックアップとして、ダウンロードしたfunctions.phpをコピーしておきます。

次に、テキストエディタでfunctions.phpを開きます。

「<?php」のすぐ下に以下のコードを追記します。

function author_archive_redirect() {
   if( is_author() ) {
       wp_redirect( home_url());
       exit;
   }
}
add_action( 'template_redirect', 'author_archive_redirect' );

保存したら、FTPでファイルをアップロード(上書き)します。

作業自体はこれで完了です。

「http://サイトURL/?author=1」にアクセスしてみて、トップページにリダイレクトされたらOKです。

WordPress管理画面のテーマ編集からfunctions.phpが編集できなくなった
以前はテーマ編集画面から、テーマのファイルが編集できたのですが、Wordpress4.9から編集できなくなってしまいました。

phpを編集しようとして「ファイルの更新」をクリックすると

致命的なエラーをチェックするためにサイトと通信できないため、PHP の変更は取り消されました。SFTP を使うなど、他の手段で PHP ファイルの変更をアップロードする必要があります。< というエラーメッセージが表示されて、編集が反映されません。 Version 4.9 – WordPress Codex 日本語版によると、

潜在的な危険を警告
テーマやプラグインを直接編集すると、WordPress 4.9はそれが危険なやり方だと警告します。そしてファイルを改変する前にバックアップするように勧めます。安全なルートを選べば、後から自分自身もチームと顧客もあなたに感謝することでしょう。

とのこと。

WP管理画面からのphp編集は「安全なルート」ではない、ということですね。

上記内容をプラグイン化した「Author Archive None」

functions.phpに追記した内容のものをプラグイン化しました。

以下のリンクからダウンロードして、手動でプラグインインストールしてください。
有効化するだけで使えます。

「Author Arichive None」プラグインのダウンロードはこちら

?author=1やauthor/1といったアクセスがあったら、サイトのトップページへリダイレクトします。

その他のログインセキュリティ対策

≫WordpressにGoogleAuthentificatorで2段階認証を付ける
≫SiteGuard WP Pluginで画像認証(ひらがな入力)を付ける

 - WordPress, プラグイン