รายการที่อนุญาตการเชื่อมต่อ: รักษาความปลอดภัยการเข้าถึงเครือข่ายของเว็บแอปพลิเคชัน

เผยแพร่เมื่อ: 23 กันยายน 2569

เว็บแอปสมัยใหม่มีความซับซ้อนมากขึ้น โดยผสานรวมสคริปต์ของบุคคลที่สามและบางครั้งก็เป็นโค้ดที่สร้างขึ้นแบบไดนามิกจาก Generative AI แม้ว่าการผสานรวมเหล่านี้จะมีประสิทธิภาพ แต่ก็เพิ่มความเสี่ยงต่อการขโมยข้อมูลอย่างมาก เพื่อจัดการกับความเสี่ยงนี้ Chrome 152 จึงเปิดตัวรายการที่อนุญาตสำหรับการเชื่อมต่อ ซึ่งเป็นกลไกการรักษาความปลอดภัยใหม่ที่ช่วยให้คุณสร้างแซนด์บ็อกซ์เครือข่ายที่เข้มงวดสำหรับเอกสารและเวิร์กเกอร์ได้

ความท้าทายในการรักษาความปลอดภัยของการสื่อสารในเครือข่าย

คุณต้องควบคุมปลายทางที่หน้าเว็บสื่อสารด้วยอย่างชัดเจนเพื่อจัดการทรัพยากร Dependency และรักษาความปลอดภัยสถาปัตยกรรมของเว็บไซต์ สคริปต์ที่เป็นอันตรายหรือโค้ดที่ AI สร้างขึ้นซึ่งมีอาการหลอนอาจข้ามการตรวจสอบระดับแอปเพื่อส่งข้อมูลที่ละเอียดอ่อนไปยังเซิร์ฟเวอร์ที่ไม่ได้รับอนุญาต

แม้ว่านโยบายรักษาความปลอดภัยเนื้อหา (CSP) จะเป็นเครื่องมือที่มีประสิทธิภาพในการควบคุมสิ่งที่หน้าเว็บสามารถโหลดและเรียกใช้ได้ แต่นโยบายนี้ไม่ได้ออกแบบมาเพื่อจำกัดตำแหน่งที่หน้าเว็บสื่อสาร CSP จะจัดหมวดหมู่คำขอเป็นประเภทที่เฉพาะเจาะจง ซึ่งทำให้เกิดรายละเอียดที่มากเกินไปเมื่อคุณต้องการเพียงขอบเขตเครือข่ายแบบกว้างๆ นอกจากนี้ CSP ยังไม่ครอบคลุม API ของแพลตฟอร์มเว็บทั้งหมด โดยละเว้นกลไกต่างๆ เช่น การดึงข้อมูล DNS ล่วงหน้า, การนำทาง, WebRTC และอื่นๆ

รายการที่อนุญาตสำหรับการเชื่อมต่อคืออะไร

รายการที่อนุญาตสำหรับการเชื่อมต่อจะช่วยจัดการความเสี่ยงเหล่านี้โดยทำให้เบราว์เซอร์เป็นผู้ควบคุมการเชื่อมต่อเครือข่ายทั้งหมดที่มาจากหน้าเว็บของคุณ ซึ่งเป็นวิธีที่ตรงไปตรงมาและมีประสิทธิภาพในการจัดการคำขอเครือข่ายที่ชัดเจนซึ่งเริ่มต้นโดยใช้ Fetch และ API ของแพลตฟอร์มเว็บอื่นๆ

การส่งส่วนหัวการตอบกลับ HTTP Connection-Allowlist จะเป็นการระบุรูปแบบ URL ที่แน่นอนซึ่งได้รับอนุญาตสำหรับการสื่อสารผ่านเครือข่ายทั้งหมด ซึ่งจะบังคับใช้ไฟร์วอลล์ที่ปฏิเสธโดยค่าเริ่มต้นในระดับเฟรมเวิร์ก ก่อนที่จะสร้างการเชื่อมต่อ เบราว์เซอร์จะยืนยันปลายทางกับรายการที่อนุญาตและบล็อกปลายทางที่ระดับเครือข่ายหากไม่ตรงกัน

วิธีใช้รายการที่อนุญาตสำหรับการเชื่อมต่อ

นโยบายใช้ไวยากรณ์ URLPattern ที่ได้มาตรฐานเพื่อกำหนดปลายทางที่อนุญาต นโยบายนี้แยกต่างหากสำหรับแต่ละบริบทของหน้าต่างหรือ Worker

การกำหนดค่าพื้นฐาน

คุณสามารถใช้โทเค็น response-origin เพื่อเพิ่มต้นทางที่แสดงการตอบกลับไปยังรายการที่อนุญาตแบบไดนามิก ควบคู่ไปกับปลายทาง API ที่เฉพาะเจาะจง

Connection-Allowlist: ("https://api.example.com/*" response-origin)

การจัดการการเปลี่ยนเส้นทางและ WebRTC

โดยค่าเริ่มต้น รายการที่อนุญาตสำหรับการเชื่อมต่อจะบล็อกการเปลี่ยนเส้นทางและการเชื่อมต่อ WebRTC ทั้งหมด หากมีการบังคับใช้รายการที่อนุญาต ระบบจะบล็อกคำขอที่ส่งผลให้เกิดการเปลี่ยนเส้นทาง เว้นแต่คุณจะเลือกรับอย่างชัดแจ้ง

Connection-Allowlist: ("https://api.example.com/*"); redirects=allow; webrtc=allow

การรายงานการละเมิด

หากต้องการตรวจสอบการหยุดทำงานที่อาจเกิดขึ้นโดยไม่รบกวนบริการ คุณสามารถติดตั้งใช้งานฟีเจอร์นี้ในโหมดรายงานเท่านั้น ซึ่งจะแยกวิเคราะห์นโยบายและส่งรายงานการละเมิดไปยังปลายทาง Reporting API ที่ระบุโดยไม่บล็อกการเชื่อมต่อ ตรวจสอบว่าคุณได้กำหนดค่าส่วนหัวการตอบกลับ HTTP Reporting-Endpoints เพื่อแมปชื่อปลายทางที่เลือกกับ URL จริงด้วย

Connection-Allowlist-Report-Only: ("https://trusted.com/*"); report-to=security-endpoint

กรณีการใช้งานหลัก

รายการที่อนุญาตสำหรับการเชื่อมต่อออกแบบมาสำหรับสภาพแวดล้อมที่มีความปลอดภัยสูงหรือมีการเปลี่ยนแปลงตลอดเวลา คุณจะพบว่ารายงานเหล่านี้มีประโยชน์อย่างยิ่งสำหรับสิ่งต่อไปนี้

  • การรักษาความปลอดภัย Generative AI: หากเว็บแอปของคุณเรียกใช้โค้ดที่สร้างขึ้นหรือไม่น่าเชื่อถือ (เช่น UI ที่ AI สร้างขึ้นหรือแซนด์บ็อกซ์การพัฒนา) คุณสามารถป้องกันไม่ให้โค้ดดังกล่าวขโมยข้อมูลไปยังโดเมนภายนอกได้
  • การกำกับดูแลของบุคคลที่สาม: เมื่อฝังสคริปต์หรือเกมบนเว็บของบุคคลที่สาม คุณสามารถรับประกันได้ว่าสคริปต์หรือเกมเหล่านั้นจะไม่ส่งข้อมูลไปยังเซิร์ฟเวอร์ที่ไม่ได้รับอนุญาต แม้ว่าจะถูกบุกรุกก็ตาม
  • การป้องกันทางสถาปัตยกรรม: คุณสามารถบังคับใช้ขอบเขตเครือข่ายที่เข้มงวดรอบส่วนที่ละเอียดอ่อนของแอป เพื่อให้มั่นใจว่าการสื่อสารจะเกิดขึ้นกับแบ็กเอนด์ที่ได้รับอนุมัติเท่านั้น

ฟีเจอร์นี้ใช้เป็นการเพิ่มประสิทธิภาพแบบต่อเนื่องในการตั้งค่าตามนโยบายการรักษาความปลอดภัยเนื้อหา (CSP) ที่มีอยู่ได้

รายการที่อนุญาตสำหรับการเชื่อมต่อทดสอบ

ฟีเจอร์รายการที่อนุญาตสำหรับการเชื่อมต่อพร้อมให้บริการอย่างเป็นทางการตั้งแต่ Chrome 152 เป็นต้นไป คุณเริ่มปกป้องเว็บแอปพลิเคชันได้ตั้งแต่วันนี้โดยเพิ่มส่วนหัวลงในการตอบกลับของเซิร์ฟเวอร์

การเชื่อมต่อที่ถูกบล็อกในแผงเครือข่ายของเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome
การเชื่อมต่อที่ถูกบล็อกในแผงเครือข่ายของเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome

วิธีทดสอบการกำหนดค่าระหว่างการพัฒนา

  1. กำหนดค่าเซิร์ฟเวอร์การพัฒนาในเครื่องให้ส่งส่วนหัวการตอบกลับ HTTP Connection-Allowlist
  2. เปิดเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome และตรวจสอบแผงเครือข่ายเพื่อหาคำขอที่ถูกบล็อก หรือแท็บปัญหาเพื่อดูรายงานการแยกวิเคราะห์ส่วนหัวโดยละเอียด

แหล่งข้อมูลเพิ่มเติม