WordPressの管理者ユーザ名をデフォルトの「admin」のままにしていると、ブルートフォース攻撃への脆弱性があるため、別のユーザ名を使用することが推奨されている。もちろん、サイトに表示される作成者も別の表示名にする。
ここまでは多くのユーザが意識しているようだが、ユーザ名を完全に隠すためには、さらに下記2点に注意する必要がある。
- 使用しているテーマが、メタデータとしてソース中にユーザ名を記述していないか。
このサイトで使用しているテーマ「plaintxtblog」が、まさにこのパターンだった。body要素と各記事のclass属性にユーザ名が記述されていた。下記「********」の部分である。
(投稿の場合=2010/10/06作成、2013/10/20表示)
<body class="wordpress y2013 m10 d20 h04 single s-y2010 s-m10 s-d06 s-h11 s-category-society s-author-********"> <div id="post-1982" class="hentry p1 post publish author-******** category-society y2013 m10 d06 h11">
(固定ページの場合=2010/06/08作成、2013/10/20表示)
<body class="wordpress y2013 m10 d20 h06 page page-author-********"> <div id="post-2" class="hentry p1 page publish author-******** category-life y2010 m06 d08 h12">
テーマのための関数(functions.php)で生成される独自のメタデータだが、なぜ表示名ではなくログイン名にするのか、意味がわからない。当該の3個所をコメントアウトすることにした。
plaintxtblog ver.4.7.0/テーマのための関数(functions.php)
(Produces semantic classes for the body element)
if ( is_single() ) { the_post(); $c[] = 'single'; if ( isset($wp_query->post->post_date) ) plaintxtblog_date_classes(mysql2date('U', $wp_query->post->post_date), $c, 's-'); foreach ( (array) get_the_category() as $cat ) $c[] = 's-category-' . $cat->category_nicename; // $c[] = 's-author-' . get_the_author_meta('login'); rewind_posts();
elseif ( is_page() ) { the_post(); $c[] = 'page'; // $c[] = 'page-author-' . get_the_author_meta('login'); rewind_posts(); }
(Produces semantic classes for the each individual post div)
// $c[] = 'author-' . get_the_author_meta('login');
plaintxtblogを使用しているユーザを検索してみると、この点を放置している人が多い。また、plaintxtblogのベースになった「Sandbox」も同じ仕様なので注意。
こうしたメタデータを独自にソースに書いてしまうテーマはほかにもあると思うので、ソースをログイン名で検索して確認することが必要だ。
- Author Archivesのスラッグを変更しているか。
WordPressで自動生成されるAuthor ArchivesのURLが、「http://example.com/author/ユーザ名/」になっている。これも表示名ではない。
Author Archivesは「http://example.com/?author={user_id}」の形式でも呼び出せるため、{user_id}を1から順にカウントアップしていけば、1の「admin」を削除していても、すぐにAuthor Archivesが表示されてしまう。
これについては、Author ArchivesのURLに表示されるスラッグを変更する、「Edit Author Slug」などのプラグインを入れて対応するのがよい。先達サイト「dogmap.jp」が詳しく紹介している。
Author ArchivesのURLはWordPressコアプログラムの脆弱性なので、本体側で対応されることが望ましいと思う。