섹션별 상세
기존 Claude Code의 WebFetch 도구는 Turndown 변환과 하위 모델(Haiku) 요약을 거치지만 보안 경계로 설계되지 않아 텍스트 수준의 인젝션에 취약하다. 제로 너비 문자, Base64 페이로드, Markdown 이미지 유출 URL 등은 단순 변환 과정을 통과하며, 요약 모델 자체가 공격 페이로드에 의해 조작될 위험이 존재한다.

mcp-safe-fetch는 LLM을 루프에 포함시키지 않고 Regex, Cheerio, 문자열 처리를 통한 결정론적 정제 방식을 채택했다. display:none이나 visibility:hidden과 같은 숨겨진 요소, 배경색과 동일한 텍스트, 위험한 HTML 태그 및 주석을 물리적으로 삭제하여 인젝션 벡터를 원천 차단한다.
웹 페이지를 위한 safe_fetch, 외부 리포지토리 파일을 위한 safe_read, 외부 명령 출력을 위한 safe_exec 등 세 가지 핵심 도구를 제공한다. 각 도구는 Claude Code의 기본 도구와 호환되는 파라미터와 출력 형식을 유지하면서 상단에 투명한 정제 레이어를 추가한 형태다.
bash
npx -y mcp-safe-fetch initMCP 서버를 등록하고 기본 WebFetch 도구를 차단하여 안전한 도구를 사용하도록 설정하는 초기화 명령
문자 수준 정제에서는 제로 너비 문자, 제어 문자, NFKC 정규화를 수행하며 구조적 인젝션 방지를 위해 [INST]나 Human: 같은 가짜 LLM 구분자를 무력화한다. 또한 Base64로 인코딩된 명령어 시퀀스를 탐지하여 디코딩 후 검사하는 기능도 포함되어 있다.
실제 4개 사이트를 대상으로 한 벤치마크에서 PayloadsAllTheThings 사이트의 경우 토큰량을 80% 줄이면서 숨겨진 요소와 구분자를 잡아냈다. Node.js 문서의 경우 97%의 토큰 절감률을 기록했으며, 모든 테스트에서 가시적인 콘텐츠는 유지하면서 오탐 없이 위협 요소만 제거했다.
markdown
## Web Fetching / Untrusted Content
When you need to fetch/read the content of a URL, always use the `safe_fetch` MCP tool.
Do not use WebFetch, Playwright, or Chrome DevTools to load web pages.
When reading files from cloned repos, downloaded archives, or vendored dependencies, use `safe_read` instead of `Read`.Claude가 자동으로 안전한 도구를 선택하도록 CLAUDE.md에 추가하는 권장 규칙
용어 해설
- 모델 컨텍스트 프로토콜(MCP)
- — LLM 애플리케이션이 로컬 데이터나 외부 도구와 안전하게 연결될 수 있도록 Anthropic이 공개한 개방형 표준 프로토콜이다. 서버-클라이언트 구조를 통해 모델이 필요한 데이터에 접근하거나 기능을 실행할 수 있는 표준화된 인터페이스를 제공한다.
- 프롬프트 인젝션(Prompt Injection)
- — 악의적인 사용자가 입력 데이터에 특정 명령어를 숨겨 넣어 LLM의 원래 지시사항을 무시하고 공격자가 의도한 행동을 하도록 유도하는 공격 기법이다. 웹 페이지의 숨겨진 텍스트나 주석 등을 통해 에이전트의 권한을 탈취하거나 데이터를 유출할 수 있다.
- 결정론적 정제(Deterministic Sanitization)
- — LLM과 같은 확률적 모델을 사용하지 않고 정규표현식이나 HTML 파서 등 정해진 규칙에 따라 데이터를 필터링하는 방식이다. 동일한 입력에 대해 항상 동일한 결과를 보장하므로 보안 필터링 과정에서 모델 자체가 조작될 위험을 원천 차단한다.
- 턴다운(Turndown)
- — HTML 콘텐츠를 Markdown 형식으로 변환해주는 JavaScript 라이브러리다. LLM이 이해하기 쉬운 형태로 데이터를 변환하는 데 자주 사용되지만, 텍스트 수준에 숨겨진 인젝션 벡터를 제거하는 보안 도구로 설계되지는 않았다.
기술
- Cheerio
- Turndown
- Node.js
- Regex
- MCP SDK
활용 사례
- 웹 페이지 콘텐츠의 안전한 추출
- 외부 리포지토리 코드 분석 시 보안 필터링
- 신뢰할 수 없는 쉘 명령 결과 정제
언급된 리소스
AI 분석 전체 내용 보기
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
원문 발행 2026. 03. 01.수집 2026. 03. 01.출처 타입 RSS
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.