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