원문 캡처 · signalscorps.com
원문 캡처 · signalscorps.com

Common Crawl의 웹 페이지 응답 2억 1,709만 7,223건을 분석한 결과, 7,959개 사이트가 AI를 겨냥한 HTTP 헤더를 보냈다. 대부분은 llms.txt 파일이나 MCP 서버 같은 다른 자원으로 에이전트를 안내했지만, 30개 사이트에서는 지시를 바꾸려는 문구가 발견됐다. 헤더가 실제 모델에 전달되는지는 에이전트의 가져오기 도구가 응답의 어느 부분을 넘기는지에 달려 있다.

Signals Corps는 2026년 9월 Common Crawl의 21억 7,000만 페이지 가운데 10%를 조사했다. AI 대상 헤더를 보낸 사이트 중 7,271곳은 다른 자원을 가리키는 포인터를 사용했고, 그중 6,989곳은 x-llms-txt를 보냈다. AI 봇으로 방문자를 분류했다고 기록한 사이트는 139곳이었다. 공격성 지시를 보낸 30곳 중 24곳은 X-AI 헤더를 썼으며, 대다수는 장난 문구였다.

헤더가 위험한지는 이름만으로 판단하기 어렵다. 조사에서 AI 관련 단어가 들어간 헤더를 기준으로 탐지하면 AI와 무관한 사이트 910곳을 잘못 골랐을 것으로 나타났다. Common Crawl은 CCBot으로 수집하므로 특정 AI 에이전트에만 다른 헤더를 보여주는 사이트는 조사 결과에 잡히지 않을 수 있다.

어떤 가져오기 도구는 페이지 본문만 모델에 전달해 헤더를 차단한다. 반면 셸에서 curl -i를 실행하거나, 전체 헤더를 반환하는 도구를 쓰면 헤더가 모델에 닿을 수 있다. Claude Code의 WebFetch는 페이지 요약과 리디렉션 대상 주소를 전달하며, 셸에서 curl을 실행하면 헤더를 볼 수 있다. Gemini CLI는 기본적으로 꺼져 있는 실험 설정을 켰을 때 오류 응답의 헤더를 전달할 수 있다. Playwright MCP의 browser_network_request는 요청 시 전체 헤더를 반환한다.

Signals Corps가 2026년 10월 Claude Code에서 Claude Opus, Claude Sonnet, Claude Haiku를 시험했을 때, 모델들은 기본 설정에서 테스트 헤더를 읽고도 지시를 따르지 않았다. 하지만 사용자 프롬프트가 사이트 지시를 따르라고 권한을 부여한 경우에는 9회 중 7회 코드 문구를 출력했다. 이는 모델·프롬프트별로 한 번씩 실행한 결과이며, 다른 에이전트와 버전의 동작은 달라질 수 있다.

에이전트 운영자는 가져오기 도구가 모델에 넘기는 응답 필드를 확인하고, 기본적으로 본문만 전달하는 편이 좋다. 리디렉션 주소나 x-llms-txt 같은 포인터는 새로 가져오는 신뢰할 수 없는 입력으로 취급해야 한다. 새 MCP 서버 연결이나 기술(skill) 설치에는 승인을 요구하고, 외부 콘텐츠를 지시가 아닌 데이터로 표시해야 한다. 도구 호출은 모델 바깥에서 사용자의 작업·대상 주소·접근 데이터에 비춰 검사하고, 로그에서는 헤더 이름만이 아니라 가져오기 뒤에 작업 범위를 벗어난 명령이나 네트워크 요청이 이어졌는지 살펴야 한다.

조사와 시험 방법은 Signals Corps의 분석에서 확인할 수 있다. 관련 배경 자료로는 Common Crawl의 2026년 9월 크롤, Anthropic의 Claude for Chrome 시험, IETF의 Content-Usage 헤더 초안이 있다.

부록: 원문 예시

text
HTTP/2 301 location: https://www.signalscorps.com/ server: cloudflare HTTP/2 200 content-type: text/html; charset=utf-8 cache-control: public, max-age=0, must-revalidate link: <https://fonts.googleapis.com>; rel="preconnect" server: cloudflare