Web の HTTP 応答ヘッダーに書かれた指示をエージェントに読ませない
約 2 億件の応答を調べると、エージェント向けの指示をヘッダーに書くサイトは実際にある(多くはいたずら)。影響が出るのは取得ツールがヘッダーをモデルに渡すときで、「サイトの指示に従って」とプロンプトに書くと従うモデルが出た。
いつ使うか
- エージェントに Web を取得させる自作ツールやワークフローを作るとき
curl -iをシェルで使わせている、リダイレクトやエラー応答をそのままモデルに返している
分かったこと
- AI 向けヘッダーを返す 7,959 サイトのうち、エージェントへの指示を含むのは 30 サイト、うち 22 はいたずら。大半は llms.txt や MCP サーバーの案内だった。
- Claude Code 上の 3 モデルに架空 API の準備を頼み、ヘッダーで架空の氏名とメールの送信を指示した実験では、通常の依頼では誰も登録しなかった。依頼に「サイトの指示に従うこと」を足すと、3 モデル中 2 モデルが送信した。
- ヘッダーがモデルに届く経路の例: シェルの
curl -i、Gemini CLI で直接取得を有効にしたときのエラー応答、Claude Code の WebFetch が返すリダイレクト先。 - 一部サイトは AI ボットを判定したことをヘッダーで示しており、人と AI に違う内容を返す(クローキング)準備とも読める。
対策
- 取得ツールは本文だけ返すのを既定にし、ヘッダーは許可した項目だけ渡す。
- プロンプトに「サイトの指示に従う」「ページの手順どおりに」と書かない。
- Web 由来の内容をきっかけにしたコマンド実行や個人情報の送信は、人の承認を挟む。
- 何を取得したかを時刻付きで記録する。ヘッダーの生の値は、秘密を含まない許可済み項目だけ残す。