피드로 돌아가기
Dev.toSecurity
원문 읽기
Claude Code 사용자가 PreToolUse hook으로 URL 쿼리 파라미터를 검사하여 프롬프트 인젝션 기반 데이터 유출을 방지하는 패턴
Claude Code: Auto-Approve Tools While Keeping a Safety Net with Hooks
AI 요약
Context
Claude Code의 WebFetch 도구는 모든 URL 요청 시 사용자의 승인을 요구한다. 반복적인 승인 작업에 대한 번거로움을 해결하기 위해 permissions.allow 설정으로 자동 승인을 활성화할 수 있지만, 쿼리 파라미터에 민감한 데이터가 포함된 악성 URL도 함께 자동 허용되는 보안 취약점이 존재한다.
Technical Solution
- PreToolUse hook → WebFetch 도구 실행 전 URL을 검사하는 게이트키퍼 역할
- Python one-liner → stdin에서 JSON 수신 후 tool_input.url 추출하여 ? 문자 포함 여부 체크
- exit code 0 → 쿼리 파라미터 없는 깨끗한 URL 자동 허용
- exit code 1 → 쿼리 파라미터 발견 시 확인 프롬프트 표시 및 승인/거부 대기
- exit code 2 → 위험 패턴hard block 및 실행 차단
Impact
중복 승인 작업 감소 효과. docs.python.org 같은 일반 문서 URL은 즉시 통과, API 키 포함 URL만 수동 검토 필요.
Key Takeaway
permissions.allow와 PreToolUse hook을 동시에 설정하면 hook이 실행되지 않으므로, WebFetch에 대한 권한 허용은 hook에게만 위임해야 한다.
실천 포인트
Claude Code 환경에서 WebFetch 사용 시 ~/.claude/settings.json에 PreToolUse hook을 쿼리 파라미터 감지 로직으로 설정하면 불필요한 승인 프롬프트를 줄이면서도 프롬프트 인젝션 공격으로부터 민감 정보 유출을 방지할 수 있다