페이지 콘텐츠로 건너뛰기
문서
Make Agent Fast 문서

보안 및 CSP

오리진 허용 목록, 브라우저 정책, 안전한 자격 증명 처리로 임베드 에이전트를 보호합니다.

이 페이지 한눈에

오리진 허용 목록, 브라우저 정책, 안전한 자격 증명 처리로 임베드 에이전트를 보호합니다.

임베드 설치 경로사이트 로더가 호스팅 에이전트 런타임과 통신합니다
내 사이트HTML / app로더 스크립트embed.js위젯 UI채팅/음성에이전트

오리진 허용 목록#

임베드가 활성화되고 브라우저의 정확한 상위 오리진이 허용되어야 임베드가 로드됩니다. 오리진은 scheme://hostname[:port] 형식이며 경로와 쿼리 문자열은 포함하지 않습니다.

호스트 페이지허용 목록 값
https://example.com/pricinghttps://example.com
https://www.example.com/helphttps://www.example.com
https://preview.example.com:8443/demohttps://preview.example.com:8443
http://localhost:3000http://localhost:3000

운영, 미리보기, 로컬 오리진을 각각 추가하세요. 설치 오류를 해결하려고 와일드카드를 추가하지 마세요. 공개 슬러그를 복사한 누구나 에이전트를 임베드하고 사이트 크레딧을 사용할 수 있게 됩니다.

콘텐츠 보안 정책#

로더에는 스크립트 권한, 위젯에는 프레임 권한, 로더의 디자인 요청에는 연결 권한이 필요할 수 있습니다. 다음 출처를 호스트의 기존 지시문에 병합하고 완성된 정책 전체를 이 최소 예시로 교체하지 마세요.

Content-Security-Policy:
  default-src 'self';
  script-src 'self' https://makeagent.fast;
  frame-src https://makeagent.fast;
  connect-src 'self' https://makeagent.fast;

사이트가 script-src-elem을 사용하면 그 지시문에도 https://makeagent.fast를 추가합니다. 외부 로더에는 unsafe-inline이 필요하지 않지만 호스트 프레임워크에는 별도의 nonce 또는 해시 요구 사항이 있을 수 있습니다. 테스트 중에는 보고 전용 정책을 사용할 수 있습니다.

Content-Security-Policy-Report-Only:
  script-src 'self' https://makeagent.fast;
  frame-src https://makeagent.fast;
  connect-src 'self' https://makeagent.fast;

브라우저 콘솔에 CSP 위반이 표시되면 default-src를 넓게 풀지 말고 오류에 표시된 지시문만 수정한 뒤 공개 페이지를 다시 테스트하세요.

마이크 및 브라우저 권한#

로더는 allow="microphone; autoplay; clipboard-write"로 iframe을 생성합니다. 더 엄격한 호스트 수준 Permissions Policy가 이 권한을 다시 차단할 수 있습니다. 음성을 사용한다면 호스트 응답에서 Make Agent Fast 프레임 오리진을 허용하세요.

Permissions-Policy: microphone=(self "https://makeagent.fast")

방문자가 브라우저에서도 마이크 접근을 허용해야 합니다. 브라우저는 보통 안전하지 않은 공개 오리진에서 마이크를 제한하므로 HTTPS에서 테스트하세요. 텍스트 채팅에는 마이크 권한이 필요하지 않습니다.

메시지 및 프레임 경계#

로더는 현재 사이트 슬러그와 연결된 maf:ready, maf:open, maf:close, 테마 생명주기 메시지만 처리합니다. 프레임에서 오는 메시지는 https://makeagent.fast 오리진과 대조됩니다. 로더를 자체 번들에 복사하거나 이 오리진 검증을 제거하지 마세요.

호스트 페이지 코드는 iframe DOM에 직접 접근하지 않아야 합니다. 프레임은 의도적으로 교차 오리진이며 지원되는 통합 표면은 로더와 문서화된 data-* 속성입니다.

비밀 값 및 방문자 식별 정보#

사이트 슬러그와 로더 URL은 공개 값입니다. 그 외 값은 페이지 소스에 넣지 마세요.

  • MAF API 키, OAuth 토큰, AI 제공자 키, 커넥터 토큰, 웹훅 시크릿을 스니펫에 넣지 마세요.
  • JavaScript 번들에 비밀 값을 빌드하거나 NEXT_PUBLIC_*, VITE_* 같은 브라우저 환경 변수로 노출하지 마세요.
  • 애플리케이션이 사이트 생성, 에이전트 업데이트, 비공개 워크스페이스 데이터 조회를 해야 한다면 서버 측 API 통합을 사용하세요.
  • 이메일 주소, 계정 ID 같은 방문자 데이터를 data-label, data-locale, 쿼리 매개변수에 넣지 마세요.

동의, 개인정보, 보존#

개인정보 및 동의 정책에 맞게 임베드를 분류하세요. 동의 관리자가 필수가 아닌 제3자 스크립트를 차단한다면 해당 동의를 받은 후에만 embed.js를 로드합니다. 그 전에는 관리자를 우회하지 말고 일반 링크나 비활성 자리 표시자를 보여 주세요.

정책과 관련 법률이 요구하면 AI, 마이크 녹음, 리드 수집, 분석, 외부 메시징 제공자 사용을 방문자에게 알리세요. 출시 전에 사이트의 대화 보존 및 삭제 흐름을 확인하세요. 임베드를 연결 해제하거나 제거하는 것만으로 기존 대화가 삭제되지는 않습니다.

보안 출시 체크리스트#

  • 고객 웹사이트를 배포하고 임베드 에이전트를 활성화해 테스트했습니다.
  • 의도한 정확한 상위 오리진만 허용했습니다.
  • 호스트 CSP가 광범위한 와일드카드 없이 스크립트, 프레임, 디자인 요청을 허용합니다.
  • 음성을 사용할 때만 마이크를 허용하고 HTTPS에서 테스트했습니다.
  • HTML, 번들 출력, 브라우저 로그에 자격 증명이나 비공개 방문자 값이 없습니다.
  • 동의 전후의 동의 관리자 동작을 테스트했습니다.
  • 허용 목록에 없는 오리진에서는 복사된 스니펫이 실패합니다.