무엇을 도와드릴까요?

문의 내용을 간단히 알려 주세요. 이메일로 답변드릴게요.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
홈으로

보안과 Content Security Policy

위젯에 필요한 Content Security Policy 항목, 인라인 스크립트·unsafe-inline 없이 작동하는 이유, 페이지와의 격리와 브라우저에 넣어서는 안 되는 시크릿.

Content Security Policy

위젯은 타사 글꼴과 추적 픽셀을 로드하지 않고 eval도 실행하지 않습니다. shadow DOM의 constructable stylesheet(adoptedStyleSheets)로 스타일을 설정하며 이는 style-src 적용 대상이 아닙니다. 따라서 unsafe-inline과 unsafe-eval 모두 필요하지 않습니다.

reactive.chat 주소 사용:

Content-Security-Policy:
  script-src 'self' https://cdn.reactive.chat;
  connect-src 'self' wss://ws.reactive.chat https://ws.reactive.chat;
  img-src 'self' data: https:;

자체 도메인 사용:

Content-Security-Policy:
  script-src 'self' https://chat.your-company.com;
  connect-src 'self' wss://chat.your-company.com https://chat.your-company.com;
  img-src 'self' data: https:;

개별 항목:

constructable stylesheet 없는 이전 브라우저(예: 16.4 이전 Safari)는 <style> 요소로 대체하며 엄격한 style-src는 이를 차단합니다. 위젯은 작동하지만 스타일이 적용되지 않습니다.

인라인 스크립트 불필요

설치는 속성이 있는 <script src>만으로 구성됩니다. 자체 identify, track, open 호출은 자체 스크립트 파일 또는 nonce가 있는 인라인 스크립트에 넣습니다.

<script nonce="R4nd0mN0nc3">
  ReactiveChat('identify', { userId: '4711', userHash: '…', exp: 1792503600 });
</script>

인라인 스크립트 없는 템플릿은 방문자 식별에 있습니다.

Subresource Integrity

loader.js는 이름에 버전 번호가 없고 지속적으로 갱신됩니다. integrity 속성은 다음 업데이트 시 채팅을 멈추게 합니다. 코어는 이름에 콘텐츠 해시가 있습니다(아키텍처). 정책이 SRI를 요구하면 loader.js를 직접 제공하고 data-rc-ws-url을 설정합니다(빠른 시작). 이 경우 업데이트도 직접 담당합니다.

페이지와 격리

출처 검사

채팅 연결은 프로젝트 허용된 출처의 도메인에서만 받으며 서브도메인도 포함합니다. 사이트 키를 복사한 타사 페이지는 origin_denied를 받습니다. 빈 목록이면 검사하지 않으므로 반드시 도메인을 입력합니다. 자세한 내용은 전송에 있습니다.

사이트 키 자체는 비밀 정보가 아니며 모든 페이지 소스에 있습니다.

브라우저에 넣어서는 안 되는 정보

앱, 공개 저장소나 페이지 주소에도 넣지 않습니다.

악용 방지

서버는 연결별·주소별 연결, 프레임과 메시지를 제한하고 반복 위반 시 차단합니다(종료 코드 1008). 자체 프록시 뒤에서는 프록시 키가 올바를 때만 방문자 주소별로 집계하며 아니면 모두 프록시 주소를 공유합니다. 수치는 제한과 할당량에 있습니다.

다음: 자체 도메인

최종 업데이트: