นโยบายรักษาความปลอดภัยเนื้อหา (CSP) คือวิธีรักษาความปลอดภัยให้หน้าเว็บโดยการจํากัดทรัพยากรและสคริปต์ที่อนุญาตให้โหลดและเรียกใช้ได้ คุณเปิดใช้ CSP ได้โดยตั้งค่าส่วนหัว Content-Security-Policy
ในการตอบสนองของ HTTP จากเว็บเซิร์ฟเวอร์
วิธีกําหนดค่า CSP มีอยู่ 2 วิธีด้วยกัน ดังนี้
ระบุโดเมนที่อนุญาตซึ่งสามารถแทรกทรัพยากรในหน้าเว็บได้
ระบุค่าแบบสุ่มซึ่งต้องทําเครื่องหมายทรัพยากรในหน้าเพื่อให้โหลด แนวทางนี้เรียกว่า CSP ที่เข้มงวด
เนื่องจากโดเมนที่แท็กผู้เผยแพร่โฆษณาผ่าน Google (GPT) เปลี่ยนแปลงเมื่อเวลาผ่านไป เราจึงรองรับเพียง CSP ที่เข้มงวด (ตัวเลือกที่ 2) เท่านั้น วิธีนี้ทําให้ไม่จําเป็นต้องคงรายชื่อโดเมนต่อเนื่องที่อาจล้าสมัยและทําให้เว็บไซต์ใช้งานไม่ได้
การตั้งค่า CSP ด้วย GPT
เปิดใช้ 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/
คุณสามารถเลือกนโยบายที่มีสิทธิ์มากกว่านี้ได้หากเป็นไปตามกรณีการใช้งานของคุณ นโยบายที่เข้มงวดขึ้นอาจใช้งานไม่ได้โดยไม่ต้องแจ้งให้ทราบ
เปิดใช้การแสดงผลข้ามโดเมน
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
ส่วนหัวจะรายงานการละเมิดแต่ยังคงอนุญาตการละเมิดในหน้าเว็บ