WordPressインストール前に知りたいユーザー名とブログの表示名の関係
WordPressのユーザー名は投稿者名としてブログの表示名となる
世間のWordPressの波に乗ってレンタルサーバーにWordPressをインストール。(Wordpressは初めて)
WordPressは様々な攻撃の対象となっているということは、知っていたので、
セキュリティー系プラグイン関連のWebを徘徊。
記事を1つ、2つ書いてまだ公開する前だったかな・・・
おーーー、ユーザー名が投稿者名としてブログの表示名になることを知る。
(WordPressでユーザー名といえばインストール時に設定した管理画面へのログインID)
ユーザー名と違うニックネームを設定してブログの表示名を変えてもユーザー名は丸見え
記事内の投稿者名(新たに作ったニックネーム)をマウスオーバーするとブラウザ下部に現れる投稿者アーカイブのURLには
おーーー、ユーザー名がそのまま丸見えです。
管理画面へのログインページは、サイトURL/wp-login.php(デフォルト)となっており、誰にでもわかるのでセキュリティー的にいかがなものか!?
投稿者名を非表示にしてもユーザー名は取得される
それでは、投稿者名は必要ないので非表示にしてはどうでしょう?
閲覧者がユーザー名を知る方法として
サイトURL/?author=1
でアクセスすれば、最初に登録したユーザー名を含む投稿者アーカイブのURLにリダイレクトされてユーザー名丸見え。
サイトURL/author/(ユーザー名)
?author=2、?author=3、・・・でアクセスすれば、
2番目、3番目に登録したユーザー名が閲覧者にわかる仕組みで、必ず突き止められます。
ということがきっかけで、やるべきセキュリティー対策を知ることになりました。
WordPressは世界でNo1シェアのCMS、インストールすればだれでもすぐに使い始められるという触れ込みですが、
プラグインやWordPress本体の脆弱性もあり、よくよく調べて運用しないと災難に合う可能性が高いことがわかりました。
筆者の備忘録としてだけでなく、これからWordPressを始める人に(特に筆者と同じ、WordPress初心者)に読んでほしい記事です。
ブログ上の表示名を設定し、ユーザー名は取得されなくする
ユーザー名が露出、または取得される要因は下記があります。
デフォルトでユーザー名=ニックネーム=ブログ上の表示名( 投稿者名 )になっている。
以下は ユーザー名と違うニックネームをブログ上の表示名 にしても 取得されるケース。
- 投稿者名をマウスオーバーすれば投稿者アーカイブページのURLが見え、ユーザー名がその一部になっている。
サイトURL/author/(ユーザー名) - サイトURL/?author=1などと、アドレスバーに直打ちしてアクセスすれば、投稿者アーカイブページにリダイレクトされてユーザー名丸見え。
- 開発者などが使う REST API が提供されており、
サイトURL /wp-json/wp/v2/users でアクセスすれば、
ユーザー名が見えてしまう。 - コメント投稿・返信すれば、
ページのHTMLソースに
comment-author-(ユーザー名) が書かれている。
Edit Author Slug プラグインでユーザー名は取得されない
あまりにもユーザー名が知られると不正ログインされてしまうと煽る記事が多いため(実際の不正アクセス防止ポイントはそこではなかった)、筆者もそれに乗ってしまいました(^_^;)(結果、いい方向に働いたのでOKですが)。
ログインIDと投稿者名は異なる設定になるのかと思って作ったユーザー名だったので、それは取得されないようにし、新たにブログ表示名を設定することにしました。
Edit Author Slug プラグインをインストール→有効化しておきます。
「管理画面」→「ユーザー」→「あなたのプロフィール」
<ニックネーム(必須)>欄がデフォルトでユーザー名になってますが、これを変更。
<ブログ上の表示名>欄で今作ったニックネームを選び、
[プロフィールを更新]ボタン クリック。
これで、ニックネームが投稿者名として使われます。
同じページ下部のEdit Author Slug 項目で /?author=1で案内される投稿者アーカイブURLを変更できます。
サイトURL/author/(username) ← この部分
選択肢から選んだものに置き換わります。ユーザー名以外にしましょう。
カスタム設定で任意の文字列にもできます。
[プロフィールを更新]をクリックして完了。
下のように、投稿者名はニックネーム、投稿者アーカイブURLもユーザー名からニックネームに変わっています。
Edit Author Slug で1.2.を解決しましたが、確認してみると3.4.も結果的に解決できています。
※実際には、筆者はユーザー名を変更し、新たにニックネームを設定しました。
Edit Author Slug を使わない方法が多数紹介されていますが・・・
functions.php または author.php にコードを追加する方法でリスト2を解決する方法が多数紹介されていますが、Edit Author Slugの代わりにはなりません。
投稿者アーカイブを無効にする方法ですが、
リスト1.3.4.の手段でユーザー名は取得されます。
投稿者アーカイブが必要ない・表示させない手段としては有効なので、併用する分には問題ありません。
ユーザー名が「丸見え・取得される」に固執する必要はない
そもそも、 WordPressの仕様としては、ユーザー名は公開されているのが前提で、それはセキュリティ問題とはとらえてないとのことがわかりました。
パスワードを強固にしろということらしいです。
これに納得できる理由としては、
Googleアカウントのようにメルアドがログイン名になっているサービスは多数あり、公開されるユーザー名=ログインIDになっているサービスも多数ですね。
では、本来のログイン保護、いうなれば正面玄関から入られるのをさらに防ぐにはどういう手があるでしょうか。
管理画面への不正ログイン防止のセキュリティ対策
- ユーザー名隠しはほっといて、パスワードを強化する。
少なくとも、インストール時に自動生成される「強力」と表示されるランダムな英数字・記号のものにする。
さらに、強固なパスワードづくりを工夫する。 - ログイン試行回数制限追加
- ロボット対策として、ログインパージに画像認証追加
- 2段階認証追加
などがあげられますね。
リスト1.だけでも効果大。なんというか常識ですね。
リスト2.以降はプラグインの力を借ります。
SiteGuard WP Plugin を使えば2.3.はクリア。
※注意点は、インストールすると自動的にログインページのURLがデフォルトの の /wp-login.php から/login_*****(5桁の数字)に変わりますので、控えておかないと自分がログインできません。( ..)φメモメモ
任意の文字列にも変更できますがブラウザのブックマークも必要かと。
せっかく、ログインURLが変わるのですから、ブログ上のログインページへのリンクは削除する。
他にも設定項目はありますが、国産で日本語なので見れは分かります。
Google Authenticator を使えば4.もクリア。
本家Googleアカウントで2段階認証していればお馴染みのスマホアプリを使います。
道理ですね(^_^)
ユーザー名=ニックネーム=ブログ上の表示名( 投稿者名 ) になる前提でユーザー名を考えてからインストールして、入り口を強化しておけば、ユーザー名露出うんぬんを考えずに済みますね。
まとめ
プラグインは極力すくなくし、シンプルに運用したいWordPressですが、セキュリティー関連では少なくとも2つ3つ必要ではないかと思います。
ユーザー名はログインだけに使い、秘密にしたいにこだわる方は
Edit Author Slug 適用後、下記プラグインの導入がおすすめです。
そうでない方は、 Edit Author Slug は必要ないですが、強力なパスワードと、やはり、下記プラグインがおすすめです。
2段階認証までやれば、まずログイン画面保護は固いでしょう。
- SiteGuard WP Plugin
- Google Authenticator
この記事ではログイン画面保護の観点に絞っていますが、
プラグインの脆弱性をついた不正アクセス・ファイル改ざん・乗っ取りなどは有名ですので、その辺の情報収集も必要です。