robots.txt にパスを書くと、そのパスは公開されます。RFC 9309 は robots.txt がアクセス認可ではないと述べており、私たちがスキャンするサイトの多くは Disallow に /admin や CMS のパスを含んでいます。
2026年10月22日に日本のサイトをスキャンした際の robots.txt を読むと、Disallow の下に /admin が何度も現れました。robots.txt の標準自体が、パスを記載するとそのパスが公開されると警告しています。
誰でも開けるファイル
robots.txt は、私のスキャナーがどのサイトでも最初に読むファイルです。robots.txt は設計上公開されており、人でもプログラムでも /robots.txt を開いてすべての行を読めます。多くのサイト運営者は、管理画面、CMS のログイン、テスト用フォルダにクローラーを近づけないために Disallow を使っています。そうした行の一つひとつは、同時に道しるべでもあります。
標準が言っていること
RFC 9309(2022年の robots.txt の標準)は、はっきりとこう述べています。第1節:「これらのルールはアクセス認可の一形態ではありません。」第3節:「robots.txt ファイルにパスを列挙すると、それらは公開され、したがってパスが発見可能になります。」
セキュリティテストの担当者はこのことを知っています。OWASP テストガイドは、サイトについて情報収集する際に最初に読むべきファイルとして、robots.txt、サイトマップ、.well-known フォルダを挙げています。
私が見たもの
2026年10月22日、最新のスキャンで保存した robots.txt に目を通しました。14サイトのうち約10サイトに /admin がありました(1回のスキャン、2026年10月22日)。その大半はサイト運営者が選んだものではありません。Shopify のデフォルトのリストで、どのショップでも同じです。何千ものショップで同一で、ログインの背後にあるパスは、第三者にほとんど何も教えません。
一つのサイトはさらに踏み込んでいました。その robots.txt には、サーバーの設定ファイルと、CMS のテンプレートフォルダ内のファイルが記載されていました。これらはデフォルトではありません。誰かがクローラーを遠ざけるために書き加え、そうすることで、それらがどこにあるかを全員に知らせてしまったのです。
つまり、発見は見出しほど大きなものではありません。/admin の行の大半はあまり重みを持ちません。手書きされた少数の行は、確認する価値があります。
できること
- ご自身の robots.txt を開き、第三者の目で読んでください。各行について「この行は自分のサイトについて何を教えているか」を問いかけてください。
- 管理画面、テスト環境、設定ファイルはサーバー側で守ってください。ログイン、IP 制限、あるいは単に配信しないことです。robots.txt は、行儀のよいクローラーに近づかないよう頼むだけです。
- 非公開のパスで、プラットフォームのデフォルトでもないものは、robots.txt から外し、代わりにきちんと閉じてください。
これが証明しないこと
- robots.txt に名前が載っていても、そのパスが開けるとは限りません。私のスキャナーは robots.txt に従い、Disallow されたパスには決してリクエストしないため、そのいずれかが開いていたかどうかは分かりません。
- どのパスが「機密」かは判断していません。OWASP を含め公式のリストは存在しないため、私のレポートはパスを列挙し、判断はあなたに委ねます。
- 14サイト、1回のスキャンです。これはスナップショットであり、網羅的な調査ではありません。完全な数値は下記の研究ページにあります。
完全な数値と、これがサイトの AI への開放性のほかの側面とどう関係するかは、こちらをご覧ください:Open and closed to AI(https://pw.migurei.ai/en/research/open-and-closed-to-ai)。
出典
- https://www.rfc-editor.org/rfc/rfc9309.html
- https://wstg.owasp.org/latest/4-Web_Application_Security_Testing/01-Information_Gathering/03-Review_Webserver_Metafiles_for_Information_Leakage
この記事で証明していないこと
robots.txt に名前が載っていても、そのパスが開けるとは限りません。私たちは Disallow されたパスにリクエストしないため(ルール3)、分かりません。