콘텐츠 보안 정책과 통합

콘텐츠 보안 정책 (CSP)은 로드가 허용되는 리소스와 스크립트를 제한함으로써 웹페이지를 실행할 수 있습니다 Content-Security-Policy 헤더를 설정하여 CSP를 사용 설정할 수 있습니다. 웹 서버의 HTTP 응답입니다.

CSP를 구성하는 데는 두 가지 표준 방법이 있습니다.

  1. 페이지에 리소스를 삽입할 수 있는 도메인의 허용 목록을 지정합니다.

  2. 페이지의 리소스를 표시해야 하는 임의의 nonce를 지정합니다. 있습니다. 이러한 접근 방식을 엄격한 CSP라고 합니다.

Google 게시자 태그 (GPT)가 사용하는 도메인은 엄격한 CSP만 지원됩니다 (옵션 2). 이 방법은 오래된 도메인 목록을 관리하고 사이트

GPT로 CSP 설정

  1. 웹 서버에서 CSP를 사용 설정합니다.

    엄격한 CSP 채택에 설명된 단계를 따라 CSP 헤더를 설정하고 페이지의 모든 스크립트 태그에 nonce를 적용합니다. gpt.js 포함 GPT는 특히 다음을 지원합니다. CSP 지시어:

    Content-Security-Policy:
      object-src 'none';
      script-src 'nonce-{random}' 'unsafe-inline' 'unsafe-eval' 'strict-dynamic' https: http:;
      base-uri 'none';
      report-uri https://your-report-collector.example.com/
    

    사용 사례에 적합하다면 더 관대한 정책을 선택할 수 있습니다. 더보기 제한적인 정책은 예고 없이 중단될 수 있습니다.

  2. 교차 도메인 렌더링을 사용 설정합니다.

    광고 iframe은 CSP입니다. 동일한 도메인 iframe은 최상위 창의 CSP를 상속하므로 GPT는 광고 소재의 콘텐츠를 제어할 수 없으며 동일한 도메인 일반적으로 CSP 헤더에서 제대로 작동하지 않습니다.

    모든 광고 소재에 교차 도메인 렌더링을 사용 설정하려면 다음을 실행합니다. googletag.pubads().setForceSafeFrame(true) 드림 모든 광고 슬롯을 로드하기 전에 실행할 수 있습니다

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Hello GPT</title>
        <script src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" nonce="KC7tcz53FHqumKP1" async></script>
        <script nonce="KC7tcz53FHqumKP1">
          window.googletag = window.googletag || {cmd: []};
          googletag.cmd.push(function() {
            googletag.pubads().setForceSafeFrame(true);
          });
        </script>
      </head>
    

테스트

먼저 Content-Security-Policy-Report-Only 헤더 대신 Content-Security-Policy입니다. 헤더는 위반을 보고하지만 페이지에 표시할 수 있습니다.