기본 원칙
플러그인 도구는 사용자 데이터에 접근하고, 서드파티 API를 호출하고, 쓰기 작업을 수행할 수 있습니다. 모든 MCP 서버와 UI 컴포넌트에 프로덕션 소프트웨어와 같은 보안 기준을 적용하세요.
- 최소 권한: 필요한 권한 범위, 스토리지 접근 권한, 네트워크 권한만 요청하세요.
- 명시적 사용자 동의: 사용자가 계정을 연결하거나 쓰기 권한을 부여할 때 어떤 작업에 동의하는지 명확히 알 수 있도록 하세요. 데이터를 삭제하는 등 파괴적인 작업에는 호스트가 제공하는 확인 대화상자를 사용하세요.
- 심층 방어: 프롬프트 인젝션 시도와 악성 입력이 서버에 도달한다고 가정하세요. 모든 입력을 검사하고 감사 로그를 남기세요.
데이터 처리
- 구조화된 콘텐츠: 현재 프롬프트를 처리하는 데 필요한 데이터만 포함하세요. 컴포넌트의 props에 시크릿이나 토큰을 넣지 마세요.
- 저장: 사용자 데이터의 보존 기간을 정하고 보존 정책을 공개하세요. 사용자의 삭제 요청을 이행하세요.
- 로깅: 로그를 기록하기 전에 개인 식별 정보(PII)를 가리세요. 디버깅을 위해 상관관계 ID를 저장하되, 꼭 필요한 경우에만 프롬프트 원문을 저장하세요.
프롬프트 인젝션과 쓰기 작업
사용자 지정 MCP 서버에서는 쓰기 도구를 비롯한 모든 MCP 기능을 사용할 수 있습니다. 다음과 같이 위험을 줄이세요.
- 도구 설명을 정기적으로 검토하고 “레코드 삭제에 사용하지 마세요”와 같이 잘못된 사용을 방지하는 안내를 포함하세요.
- 모델이 제공한 입력이라도 서버 측에서 모든 입력을 검증하세요.
- 되돌릴 수 없는 작업을 실행하기 전에 반드시 사람이 확인하도록 하세요.
프롬프트 인젝션 테스트에 효과적이었던 프롬프트를 QA 팀과 공유해 방어가 미흡한 부분을 조기에 점검할 수 있도록 하세요.
네트워크 접근
위젯은 엄격한 콘텐츠 보안 정책(CSP)이 적용된 격리된 iframe 안에서 실행됩니다. window.alert, window.prompt, window.confirm, navigator.clipboard와 같이 특별한 권한이 필요한 브라우저 API에는 접근할 수 없습니다. 표준 fetch 요청은 CSP가 제어합니다. 기본적으로 중첩 프레임을 사용할 수 없습니다. 중첩 프레임이 필요하면 _meta.ui.csp.frameDomains와 같은 리소스 CSP 메타데이터에서 특정 출처를 허용하세요. 플러그인은 자체 MCP 서버의 등록 가능 도메인에 있는 페이지를 삽입할 수 있습니다. 여기에는 기존 편집기와 관리 인터페이스도 포함됩니다. 도메인 소유권, 제출해야 할 사용 사유, 검토 요건은 iframe 정책을 참고하세요.
위젯 CSP는 iframe이 로드할 수 있는 대상을 제한합니다. 삽입된 페이지에는 자체 CSP가 적용됩니다. 위젯의 connectDomains 및 resourceDomains 허용 목록은 해당 페이지 안에서 발생하는 네트워크 요청을 제한하지 않습니다. iframe에 허용할 출처를 구체적으로 지정하고 삽입된 페이지와 그 기능도 보안 검토에 포함하세요.
서버 측 코드에는 호스팅 환경에서 적용하는 제한 외에 별도의 네트워크 제한이 없습니다. 외부로 요청을 보낼 때는 TLS 검증, 재시도, 타임아웃 등 일반적인 권장 사항을 따르세요.
인증 및 인가
- 외부 계정을 연동할 때는 OAuth 2.1 인가 코드 플로우를 사용하세요. 인가 서버가 클라이언트 ID 메타데이터 문서(CIMD)를 지원하고 플러그인 개발자가 이 방식을 선택했다면 CIMD를 우선 사용하세요. 공개 클라이언트의 토큰 교환에는
none을 사용하고, 인가 서버가 클라이언트 인증을 요구하면private_key_jwt를 사용하세요. 플러그인 개발자가 DCR을 선택하거나 CIMD를 사용할 수 없는 경우에는 DCR을 지원하세요. - 도구를 호출할 때마다 권한 범위를 확인하고 허용된 범위 내에서만 작업을 수행하도록 하세요. 토큰이 만료되었거나 형식이 잘못된 경우
401응답을 반환하세요. - 기본 제공 ID 기능을 사용할 때는 장기간 유효한 시크릿을 저장하지 말고 제공되는 인증 컨텍스트를 사용하세요.
운영 준비
- 출시 전에 보안 검토를 수행하세요. 규제 대상 데이터를 처리하는 경우에는 특히 중요합니다.
- 비정상적인 트래픽 패턴을 모니터링하고 오류가 반복되거나 인증 시도가 실패할 때 알림을 받도록 설정하세요.
- 서드파티 종속성, 라이브러리, 빌드 도구에 최신 패치를 적용해 공급망 위험을 줄이세요.
보안과 개인정보 보호는 사용자 신뢰의 기반입니다. 나중으로 미루지 말고 기획부터 구현, 배포까지 모든 단계의 워크플로우에 반영하세요.