CSP 구성

CSP(콘텐츠 보안 정책)는 브라우저에서 사용할 수 있는 리소스를 제한하는 데 사용됩니다. CSP는 스크립트 및 스타일 리소스의 기능을 제한할 수도 있습니다. Adobe Experience Platform Web SDK는 CSP가 필요하지 않지만 CSP를 추가하면 공격 지표를 줄여 악의적인 공격을 방지할 수 있습니다.

CSP는 Platform Web SDK을(를) 배포 및 구성하는 방법을 반영해야 합니다. 다음 CSP는 SDK가 제대로 작동하는 데 필요한 변경 사항을 보여 줍니다. 특정 환경에 따라 추가 CSP 설정이 필요할 수 있습니다.

컨텐츠 보안 정책 예

다음 예는 CSP를 구성하는 방법을 보여줍니다.

Edge 도메인에 대한 액세스 허용

default-src 'self';
connect-src 'self' EDGE-DOMAIN

위의 예에서 EDGE-DOMAIN은(는) 자사 도메인으로 대체해야 합니다. edgeDomain 설정에 대해 자사 도메인이 구성되어 있습니다. 구성된 퍼스트 파티 도메인이 없으면 EDGE-DOMAIN을(를) *.adobedc.net(으)로 바꿔야 합니다. idMigrationEnabled을(를) 사용하여 방문자 마이그레이션이 설정된 경우 connect-src 지시문에도 *.demdex.net이(가) 포함되어야 합니다.

NONCE를 사용하여 인라인 스크립트 및 스타일 요소 허용

Platform Web SDK은(는) 페이지 콘텐츠를 수정할 수 있으며 인라인 스크립트와 스타일 태그를 만들려면 승인해야 합니다. Adobe 이렇게 하려면 default-src CSP 지시문에 임시 항목을 사용하는 것이 좋습니다. 임시 항목은 서버에서 생성한 암호학적으로 강력한 무작위 토큰으로, 각 고유 페이지 보기마다 한 번씩 생성됩니다.

default-src 'nonce-SERVER-GENERATED-NONCE'

또한 CSP 임시 항목은 Platform Web SDK 기본 코드 스크립트 태그에 특성으로 추가해야 합니다. Platform Web SDK은(는) 인라인 스크립트나 스타일 태그를 페이지에 추가할 때 해당 임시 항목을 사용합니다.

<script nonce="SERVER-GENERATED-NONCE">
  !function(n,o){o.forEach(function(o){n[o]||((n.__alloyNS=n.__alloyNS||
  []).push(o),n[o]=function(){var u=arguments;return new Promise(
  function(i,l){n[o].q.push([i,l,u])})},n[o].q=[])})}
  (window,["alloy"]);
</script>

임시 항목을 사용하지 않는 경우 다른 옵션은 unsafe-inline을(를) script-srcstyle-src CSP 지시문에 추가하는 것입니다.

script-src 'unsafe-inline'
style-src 'unsafe-inline'
NOTE
Adobe은 CSP의 이점을 제한하는 모든 스크립트를 페이지에서 실행할 수 있으므로 unsafe-inline을(를) 지정하는 것을 not ​을(를) 권장합니다.

인앱 메시지에 대한 CSP 구성 in-app-messaging

웹 인앱 메시지를 구성할 때 CSP에 다음 지시문을 포함해야 합니다.

default-src  blob:;
recommendation-more-help
ad108910-6329-42f1-aa1d-5920a2b13636