自分のWordPressサイトで、ログインしていない人にどの情報が見えているか、確かめたことはありますか。

投稿者の名前、WordPressのバージョン、アップロードしたファイルの一覧などは、ブラウザから確認できる場合があります。ただし、情報が見えることと、脆弱性があることは同じではありません。公開する必要がある情報か、意図しない表示かを分けて判断します。

この記事では、6つのURLで確認できる内容と、結果の読み方を紹介します。短時間で始められる公開状態の点検であり、侵害の有無やサイト全体の安全性を判定するものではありません。


WordPressテーマ「GLUE」
WordPressテーマ「GLUE」
無料で高機能なWordPressテーマが手に入る。

確認前に、対象のURLとログイン状態を揃える

対象は、自分が管理するサイト、または点検の許可を得たサイトに限ります。ブラウザのシークレットウィンドウなど、WordPressにログインしていない状態で開いてください。

以下のexample.comは、自分のサイトに置き換えます。サブディレクトリ構成では、公開サイトのURLと、WordPress本体の設置先が異なる場合があります。

  • 投稿者ページ・REST API・フィード:公開サイト側のURLを基準に確認する
  • xmlrpc.php・wp-config.php:WordPress本体の設置場所を確認する
  • uploads:実際のアップロード先を確認する。別ドメインやCDNの場合もある

たとえば公開サイトも本体もhttps://example.com/wp/にある場合は、その/wp/を含めます。すべてのサイトで、同じ基準URLを6か所に当てはめられるとは限りません。

6つのURLで、何が分かるか

確認先の例 確認できること 結果を読むときの注意
/?author=1 投稿者ページへの移動と公開スラッグ ログイン名と同じとは限らない
/wp-json/wp/v2/users 未ログインで取得できる投稿者情報 全アカウントの一覧とは限らない
/feed/ フィード内の投稿者表示名やバージョン情報 表示を隠すことより更新を優先する
/xmlrpc.php そのURLに到達できるか 認証や各機能の有効・無効までは分からない
/wp-config.php そのURLで設定内容が表示・ダウンロードされないか 白い画面だけで保護全体を確認できない
/wp-content/uploads/ フォルダの一覧が表示されないか 一覧を隠しても個別ファイルの非公開にはならない

1. /?author=1:公開される投稿者スラッグを確認する

https://example.com/?author=1を開きます。投稿者ページへ移動した場合は、アドレスバーを確認してください。/author/に続く文字列が、投稿者URLに使われるスラッグです。

スラッグは、作成時のログイン名をもとに生成される場合がありますが、変更もできます。投稿者URLに出た文字列だけで、現在のログイン名が分かったとは断定できません。

IDが1の投稿者ページが出なくても、ほかの投稿者の情報まで非公開だとは判断できません。公開されている記事の投稿者リンクも確認しましょう。

公開スラッグや表示名をログイン名と区別したい場合は、表示名とスラッグをそれぞれ確認します。「ブログ上の表示名」の変更だけで、投稿者URLも変わるとは限りません。スラッグを変更するときは、既存の投稿者リンクへの影響も確認してください。

2. /wp-json/wp/v2/users:公開される投稿者情報を確認する

https://example.com/wp-json/wp/v2/usersを開きます。ユーザー情報がJSON形式で表示されたら、項目名と内容を確認します。

REST APIで見えるユーザーの情報

画像はREST APIの表示例です。nameは表示名、slugはURL向けの識別子です。公式仕様では、ログイン名のusernameとは別の項目として定義されています。表示名やスラッグがログイン名と一致するサイトでは、推測材料になる可能性があります。

公開される投稿者情報は、サイトが提供する公開機能の一部でもあります。一覧が返ることだけで、個人情報の流出や不正アクセスと判断しないようにしましょう。メールアドレスなど、意図しない項目が含まれていないかも確認します。

なお、一覧には取得件数の上限やページ分けがあります。返ってきた件数が、そのサイトの全アカウント数を示すとは限りません。HTTPステータスが200でも、空の配列などの場合があるため、本文も見ます。

参考:Users(WordPress公式REST API仕様)

3. /feed/:投稿者の表示名とバージョン情報を確認する

https://example.com/feed/を開きます。ブラウザによってはXMLとして表示されます。generatorにWordPressのバージョン、dc:creatorに投稿者の表示名が含まれている場合があります。

RSSフィードに出るバージョンと投稿者名

画像はフィードの表示例です。表示名は、管理画面の「ユーザー」→「プロフィール」→「ブログ上の表示名」で確認できます。公開したくない名前や、ログイン名そのものになっていないかを見ておきます。

バージョン情報を隠しても、古いソフトウェアの脆弱性は解消しません。WordPress本体・テーマ・プラグインを適切に更新することを優先してください。フィードで情報が見えない場合も、別の場所に出ていないことまで保証するものではありません。

4. /xmlrpc.php:入口への到達と、機能の有効・無効を分ける

WordPress本体の設置先にあるxmlrpc.phpを開きます。「XML-RPC server accepts POST requests only.」と表示された場合は、ブラウザのGETリクエストに対して、POSTを使う入口であるという応答が返っています。

この表示や405というステータスだけでは、XML-RPCの認証機能が利用できるとは判断できません。認証が必要なメソッドだけを止めていても、入口への応答は残ることがあります。

XML-RPCを制限する場合は、Jetpackや外部投稿アプリなど、利用中の連携を確認します。使っていない機能は制限を検討できますが、設定変更後は必要な連携が動くかも確かめてください。

403などの応答も、サーバーやWAFなどが、そのリクエストを拒否した結果かもしれません。設定内容と実際の機能確認を組み合わせて判断します。

参考:xmlrpc_enabled(WordPress公式)

5. /wp-config.php:設定内容が外部に表示されないか確認する

WordPress本体の設置先を確認し、https://example.com/wp-config.phpを開きます。通常、PHPとして処理された設定ファイルのソースは表示されません。白い画面やアクセス拒否などになることがあります。

ただし、白い画面は、設定内容の露出をその画面では確認できなかったという結果です。別名のバックアップファイルや、別の経路からの露出まで否定できるわけではありません。

PHPのソースや認証情報が表示されたり、ファイルがダウンロードされたりする場合は、優先して対応が必要です。内容を記事やチャットへ貼り付けず、サーバー会社・保守担当者へ連絡してください。

外部からの閲覧を止める対応に加え、露出した認証情報の変更、アクセスログの確認、影響範囲の調査を進めます。何を変更すべきかは、実際に露出した内容に応じて担当者と判断してください。

6. /wp-content/uploads/:フォルダの一覧表示を確認する

実際のアップロード先を開きます。「Index of」などの一覧が表示された場合は、ファイル名やフォルダ構成を外部からたどれる状態です。年・月別フォルダを使っている場合は、その階層も確認します。

403や白い画面、別ページへの移動なら、そのアクセスでは一覧を確認できなかったと記録します。それだけで、配下のファイルにアクセスできないと判断しないでください。

フォルダの一覧表示を止めても、URLを知っている人が個別のPDFや画像を開ける場合があります。有料・会員限定・社内用のファイルには、ファイル自体を保護する仕組みが必要です。記事を限定公開にする設定と、添付ファイルのアクセス制限も分けて確認しましょう。

一覧表示の停止は、サーバーの管理画面や公式マニュアルに従います。ApacheではOptions -Indexesという設定がありますが、.htaccessの利用可否や許可される設定は環境によって異なります。適用条件を確認せず追記せず、変更前のファイルを保存してから作業してください。

参考:Options(Apache公式)

GLUE検証サイトで確認できたこと

2026年10月25日に、GLUE検証サイトで次の2点を確認しました。公開側の確認は、管理画面へのログイン前に行っています。サイトの設定を変更した比較検証ではありません。

項目 環境・結果
WordPress 7.1.3(管理画面で確認)
使用テーマ GLUE
REST APIのユーザー一覧 3件の投稿者情報が返った。nameとslugは含まれ、usernameは含まれていなかった
xmlrpc.phpへのブラウザアクセス 「XML-RPC server accepts POST requests only.」と表示された。認証機能の有効・無効は、この確認では未判定

この2つの結果を、ほかの4項目や別サイトの結果へ広げて判断することはできません。表示内容や制限は、プラグイン・サーバー・設定によって変わります。

ターミナルでは、応答状況の一次確認ができる

curlが使える場合は、次のコマンドでステータスと移動先を確認できます。公開URLと本体の設置先が同じ構成の例です。異なる構成では、確認先ごとにURLを調整してください。

SITE='https://example.com'
for p in '/?author=1' '/wp-json/wp/v2/users' '/feed/' '/xmlrpc.php' '/wp-config.php' '/wp-content/uploads/'; do
  printf '%s ' "$p"
  curl -sS --connect-timeout 5 --max-time 15 -o /dev/null -w '%{http_code} %{redirect_url}\n' "$SITE$p"
done

このコマンドは本文を表示せず、リダイレクト先も自動ではたどりません。200は情報露出、403は安全、404は機能停止という判定には使えません。通信エラーが出た場合も、安全だったという意味ではありません。

必要なURLをブラウザで開き、表示内容と移動先を確かめます。応答番号だけのチェックと、本文の確認は別の作業として扱ってください。

見直すときは、機密情報の露出から優先する

見つかったこと 対応の考え方
設定ファイルのソースや認証情報が見える 優先して外部からの閲覧を止め、認証情報の変更や調査を担当者と進める
非公開のつもりのファイルを開ける 個別ファイルのアクセス制限を確認する。一覧表示の停止だけで済ませない
古いWordPressなどを使っている バックアップと互換性を確認して更新する
投稿者情報や表示名が見える 意図した公開内容かを確認し、必要に応じて表示名・スラッグ・取得範囲を調整する
不要なXML-RPC連携が有効 利用状況を確認して制限し、必要な連携を再確認する

投稿者情報を制限する場合も、REST API全体を一律に止める方法には注意が必要です。WordPress公式は、API全体の無効化によって管理機能が動かなくなると説明しています。未認証の取得範囲など、目的に合う制限を検討し、投稿編集・フォーム・外部連携への影響を確認しましょう。

参考:REST API FAQ(WordPress公式)


まとめ

6つのURLを開くと、投稿者情報やフィードの内容、フォルダの一覧表示など、外から見える状態を確認できます。見つかった情報は「表示された」「このURLでは確認できなかった」「機能の有効・無効は未判定」のように、確認できた範囲で記録しましょう。

公開情報を隠す対策だけで、安全性を確保することはできません。更新、強いパスワードや多要素認証、適切な権限、バックアップなどの基本対策も続けます。

設定を変えた後は、同じURLで公開状態を確認し直すとともに、投稿編集や必要な連携が動くかも確かめてください。


世界最高品質のデザインの
WordPressテーマ集
WordPressテーマ「ISSUE」
WordPressテーマ「ISSUE」
人材不足を解決する求人採用サイトを。
WordPressテーマ「SEEED」
WordPressテーマ「SEEED」
Webサービスを販売するLP型テーマ。
WordPressテーマ「GENESIS」
WordPressテーマ「GENESIS」
スタイリッシュな企業サイトの決定版。
WordPressテーマ「SOLARIS」
WordPressテーマ「SOLARIS」
一流の企業のための一流の企業サイトを。