2億1700万件のHTTPヘッダーを調査、AIへのプロンプト注入はすでに日常化していた
Prompt injection in HTTP headers: what 217M web responses show

Common Crawlの2億1700万ページのHTTPレスポンスヘッダーを解析した結果、7,959サイトがAIシステム向けのヘッダーを送信していた。その大半はllms.txtやMCPサーバーへのポインタだが、30サイトはエージェントに命令を下そうとする注入を試み、24サイトがX-AIヘッダーを使用。多くは悪戯だが、シェルやDBアクセス権限を持つエージェントでは実際に動作し得る。Claude Codeでのテストでは、ユーザーのプロンプトがサイトの指示に従うよう促した場合、9回中7回で従った。防御は、フェッチツールがレスポンスのどの部分をモデルに渡すかにかかっている。
ユーザーのプロンプトがサイトの指示に従うよう命じた場合、9回の実行のうち7回で従った。つまり拒否できるかどうかは、プロンプトがサイトにどれだけの権限を与えているかに依存する。
HNでの議論
16- simonw
この記事は長すぎるし、非常に雑だ。
プロンプトインジェクションのヘッダーがあるセクションはこちらだ。Claude 4時代の拒否を引き起こす文字列を含んでいたものを除けば、どれもジョーク/真面目でない試みに見える。https://www.signalscorps.com/blog/prompt-injection-in-http-h...
- crisnoble
この記事は、要するにあなたのエージェントはランダムなことを言うヘッダーに従うべきではない、と言うために延々と回り道をしている。しかし、どうやらサーバーがエージェントを検出するのは非常に簡単らしく、したがってres.text()で人間のユーザーとは異なるコンテンツを返すのはたやすいだろう。これは敵対的である必要すらなく、サーバーとデータを取り込むエージェントの両方にとって、エージェントには簡素化したバージョンを返すのは理にかなっている。しかし、エージェントに異なるコンテンツを見せたい人にとっては問題になる。
- tcdent
伝統的に、コンピューティング、特にウェブは、情報がどのように解釈されるか、さらにはそれに与えられる信頼のレベルまでを指定するために構造化フォーマットを使ってきた。しかし、この記事のHTTPヘッダーのようなものに見られるように、LLMがコンテンツを解釈するとき、それはすべてただのテキストなのだ。