【マイホーム】失敗談を公開中 >> クリックで見る

WordPressでログインID(ユーザー名)は丸見え!隠す方法は?

WordPressのログインに使うユーザー名。できれば人目に触れさせたくないところです。

WordPressのログインIDがバレる場所は3つあります。これらを隠す方法を紹介します。

ユーザーIDがバレる場所1:コメントのクラス名

コメント欄のHTMLソースを見ると、「comment-author-ユーザー名」という形でユーザー名がバレていることがわかります。ログインIDを隠すには、このクラス名が出力されないようにする必要があります。

ログインIDの入ったクラス名を消すには下記のコードをfunction.phpにそのままコピペするだけでOKです。

//コメント欄のユーザー名を削除
function remove_comment_author_class( $classes ) {
foreach ( $classes as $key => $class ) {
if ( strpos( $class, 'comment-author-' )!== false ) {
unset( $classes[$key] );
}
}
return $classes;
}
add_filter( 'comment_class', 'remove_comment_author_class', 10, 1 );

strpos関数は文字列を検索するための関数です。strstrやpreg_matchなど、同種の関数の中で一番処理が速いそうです。

unset関数は指定した変数を破棄するための関数です。

投稿者のコメントを識別したいとき

ログインIDは隠したいけど投稿者のコメントは別スタイルを指定したいというときは下記のクラスが使えます。

クラス名出力される条件
byuser登録済みユーザー
bypostauthor投稿の作成者

ユーザーIDがバレる場所2:ニックネーム

WordPressのニックネームはデフォルトではログインIDと同じになっています。テーマによっては記事の中にニックネームが表示されるようになっているため、ユーザー名とニックネームを同じにしているとログインIDがバレてしまいます。ログインIDを隠すためにニックネームを登録しておきましょう。

ニックネームを変えるには管理画面のユーザー一覧にアクセスします。

ログインIDと別の名前をニックネームに設定し、ブログ上の表示名をニックネームに変えておきましょう。

ユーザーIDがバレる場所3:投稿者アーカイブ

投稿者アーカイブへのリンクを表示させていない場合でも、http://ドメイン/?author=1を入力することで投稿者アーカイブへアクセスできます。投稿者アーカイブにアクセスすると、ブラウザのアドレスバーに表示されるURLがhttp://ドメイン/author/ユーザー名/に書き換わります。ここからログインIDがバレてしまいます。

ユーザーの追加や削除を何度か行っている場合は「author=1」を「author=2」や「author=3」…と変えていくことで投稿者アーカイブに辿り着けます。

対策A:404を返す

function.phpに下記のコードを書くことで、投稿者アーカイブページにアクセスされたら404が表示されるようになります。

function disable_author_archive() {
if( $_GET['author'] || preg_match('#/author/.+#', $_SERVER['REQUEST_URI']) ){
wp_redirect( home_url( '/404.php' ) );
exit;
}
}
add_action('init', 'disable_author_archive');

対策B:プラグインでURLを変更

Edit Author Slugなどのプラグインを使えば投稿者アーカイブのURLを変えることができます。

複数ユーザーで運用していて投稿者アーカイブも必要という場合はこちらの方法になるかと思いますが、プラグインを常駐させておかなければいけないみたいです。

既にユーザー名がバレてしまった場合は

既にユーザー名がバレている可能性がある場合は、ユーザー名の変更をしておくと安心です。

上記のリンク先記事でユーザー名変更手順を説明しています。投稿などそのまま引き継いでユーザー名を変えることができます。

ユーザー名をドメイン名と一緒にしたり、「admin」というユーザー名にしていると、総当たり攻撃に合いやすいです。ユーザー名を変えるときはこれらのユーザー名は避けた方が良いです。

総当たり攻撃対策

ワードプレスのプラグイン「Limit Login Attempts Reloaded」を使うことで、ログインに複数回失敗した場合に制限を設けることができます。

プラグインの説明は英語ですが、設定画面は日本語になっているので特に難しいことなく設定できると思います。リトライ回数やロックする時間を変更できます。

ログを見て見ると、だいたいが「admin」というIDで総当たり攻撃を仕掛けているみたいです。ログインIDをadminにしている方は今すぐ変更をお勧めします。

タイトルとURLをコピーしました