AI가 웹페이지 지시를 따를 때, 프롬프트 인젝션 확인법
AI가 웹페이지 지시를 따를 때, 프롬프트 인젝션 확인법

결론부터: AI에게 웹페이지나 파일을 읽히는 순간, 그 안의 문장을 모두 “따라야 할 명령”으로 취급하면 안 됩니다. 외부 자료에 들어 있는 문장이 원래 지시를 바꾸려 하면 프롬프트 인젝션이 될 수 있습니다. OpenAI는 이런 입력이 데이터 유출이나 의도하지 않은 도구 호출로 이어질 수 있다고 설명합니다.[2]
초보자가 기억할 기준은 간단합니다. 읽을 자료와 AI에게 내리는 지시를 분리하고, 결제·삭제·메일 발송처럼 결과가 큰 행동은 AI가 바로 실행하지 않게 하는 것입니다.
프롬프트 인젝션은 어떤 모습인가요?
| 구분 | 입력 위치 | 주의할 점 |
|---|---|---|
| 직접 인젝션 | 사용자가 입력한 프롬프트 | “이전 지시를 무시하라”처럼 행동 변경을 요구 |
| 간접 인젝션 | 웹페이지·문서·이메일 속 문장 | 요약 대상이 AI에게 새 행동을 요구 |
| 도구 악용 | 검색·메일·파일·결제 도구 연결 | 읽기 작업이 외부 행동으로 번질 수 있음 |
OWASP는 외부 웹사이트나 파일을 읽는 과정에서도 간접 프롬프트 인젝션이 발생할 수 있다고 설명합니다.[3] 눈에 잘 보이지 않는 문장이나 이미지 속 지시도 모델이 읽으면 영향을 줄 수 있습니다.[3]
초보자가 먼저 확인할 신호
- 자료 안에 “이전 지시를 무시하라”는 문장이 있습니다.
- 요약이나 번역과 관계없는 비밀번호·토큰·대화 내용을 요구합니다.
- 파일을 읽는 도중 특정 링크를 열거나 메일을 보내라고 합니다.
- 답변 형식이 아니라 시스템 규칙을 바꾸라고 합니다.
- 삭제·결제·권한 변경처럼 질문과 직접 관계없는 행동을 재촉합니다.
이 문장이 공격인지 단정하는 것보다, 자료의 내용과 AI의 실행 권한이 연결되어 있는지를 보는 편이 실용적입니다.
안전하게 자료를 읽히는 순서
- AI에게 맡길 작업을 “요약”, “항목 추출”처럼 한 문장으로 제한합니다.
- 웹페이지나 파일은 신뢰하지 않는 자료라고 표시합니다.
- 결과는 정해진 항목과 형식으로만 받습니다.
- AI가 링크를 열거나 도구를 호출하기 전 중단하고 내용을 확인합니다.
- 민감한 파일과 계정 권한을 연결하지 않습니다.
OpenAI는 신뢰하지 않는 입력이 개발자 메시지에 직접 들어가지 않게 하고, 노드 사이에는 구조화된 출력을 사용하라고 안내합니다.[2] OWASP도 최소 권한과 고위험 작업의 사람 승인을 완화 방법으로 제시합니다.[3]
도구 연결 전 권한을 줄이는 법
검색만 필요한 작업에 메일 발송 권한을 붙이지 마세요. 파일을 읽기만 하면 되는 작업에 삭제 권한을 줄 이유도 없습니다. 도구가 꼭 필요하다면 읽기 전용 범위, 허용할 도메인, 사람이 확인할 단계를 먼저 정합니다.
프롬프트만 잘 쓰면 모든 공격을 막을 수 있다는 생각도 위험합니다. OWASP는 완벽한 예방 방법이 분명하지 않다고 설명하며, 권한 제한·출력 검증·공격 시뮬레이션을 함께 제안합니다.[3]
해치의 확인 과정
2026-08-31, macOS 26.6.1과 arm64 환경에서 OpenAI Agent Builder 안전 가이드와 OWASP LLM01 페이지를 curl로 요청해 각각 HTTP 200 응답을 확인했습니다. 두 문서의 프롬프트 인젝션 정의, 외부 자료를 통한 간접 인젝션, 구조화된 출력, 최소 권한과 사람 승인 권고를 대조했습니다. 이 실행에서는 외부 웹페이지를 AI 에이전트에 연결하거나 도구 호출을 실행하지 않았습니다. 따라서 특정 모델의 탐지율이나 실제 공격 차단 성능은 확인하지 않았습니다.
이런 사람에게 필요합니다
- AI로 웹페이지·PDF·이메일을 요약하려는 사람
- 검색·파일·메일 도구를 AI에 연결하려는 사람
- RAG나 업무 자동화를 시작하기 전 권한을 정하려는 사람
단순히 입력창에 질문을 쓰고 답을 읽는 정도라면 도구 권한 설계까지 필요하지 않을 수 있습니다. 그래도 외부 자료의 문장을 사실 확인 없이 지시로 받아들이지는 마세요.
자주 묻는 질문
프롬프트 인젝션은 해킹과 같은 말인가요?
프롬프트 인젝션은 입력이 모델의 행동이나 출력을 의도하지 않게 바꾸는 취약점입니다.[3] 실제 피해가 발생하는지는 연결된 데이터와 도구 권한에 따라 달라집니다.
웹페이지에 “이 지시를 따라라”가 있으면 무조건 공격인가요?
문장만으로 공격 여부를 확정하기는 어렵습니다. 요약 대상의 내용인지, AI에게 별도 행동을 요구하는지 구분하고, 도구 호출이나 민감한 데이터 접근으로 이어지는지 확인하세요.
구조화된 JSON을 쓰면 안전한가요?
정해진 필드와 값으로 출력을 제한하면 지시가 다음 단계로 흘러갈 통로를 줄일 수 있습니다.[2][3] 하지만 이것만으로 모든 인젝션을 막는다고 말할 수는 없습니다.
초보자 체크리스트
- □ AI가 읽는 웹페이지·파일을 신뢰하지 않는 자료로 구분했습니다.
- □ AI에게 맡길 작업을 요약·추출처럼 좁혔습니다.
- □ 결과 형식과 허용할 필드를 정했습니다.
- □ 메일·삭제·결제 도구는 사람 확인 뒤 실행하게 했습니다.
- □ 필요한 것보다 많은 계정 권한을 연결하지 않았습니다.
- □ 실제 입력 자료로 오작동 평가를 할 질문을 준비했습니다.
관련 글
- AI 웹 검색 답변, 출처 링크를 다시 확인해야 하는 5가지 이유
- AI가 계산기와 검색 도구를 쓰는 법, 답변을 그대로 믿지 않는 확인 순서
- 생성형 AI에 개인정보를 넣어도 될까? 초보자용 입력 전 점검표
지금 확인할 것
AI에 웹페이지나 파일을 읽히기 전에, “이 자료가 내 계정에서 어떤 행동을 실행할 수 있는가?”를 적어 보세요. 답이 메일 발송·파일 삭제·결제처럼 크다면 도구를 분리하고 사람 승인 단계를 먼저 두세요.
공식 출처
OpenAI와 OWASP의 안전 문서는 프롬프트 인젝션, 외부 자료의 간접 인젝션, 구조화된 출력, 최소 권한과 사람 승인 방식을 설명합니다.[2][3]
공식 출처: https://platform.openai.com/docs/guides/agent-builder-safety