שילוב עם מדיניות אבטחת תוכן

מדיניות אבטחת התוכן (CSP) היא אמצעי לאבטחת דפי האינטרנט, באמצעות הגבלת המשאבים והסקריפטים המותרים לטעינה ולהפעלה. ניתן להפעיל CSP על ידי הגדרת הכותרת Content-Security-Policy בתגובות HTTP משרת האינטרנט.

יש שתי דרכים רגילות להגדיר CSP:

  1. יש לציין רשימת דומיינים מורשים שיכולים להוסיף את המשאבים שלהם לדף.

  2. הגדירו צופן אקראי שבו צריך לסמן את המשאבים בדף לפי הסדר כדי לטעון אותם. הגישה הזו נקראת CSP מחמיר.

מאחר שהדומיינים שבהם נעשה שימוש ב-Google Publisher Tag (GPT) משתנים לאורך זמן, אנחנו תומכים רק ב-CSP מחמיר (אפשרות 2). בגישה הזאת לא צריך להוסיף רשימה מתחלפת של דומיינים שעלולים להפוך למיושןים ולקטוע את האתר.

הגדרת CSP עם GPT

  1. הפעלת CSP בשרת האינטרנט.

    בצעו את הפעולות שמפורטות במאמר הטמעת CSP מחמיר כדי להגדיר את כותרת ה-CSP ולהחיל את האנוזה על כל תג סקריפט בדף, כולל 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 async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" nonce="KC7tcz53FHqumKP1"></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. הכותרת מדווחת על הפרות אבל עדיין מאפשרת אותן בדף.