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

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

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

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

คุณต้องควบคุมปลายทางที่หน้าเว็บสื่อสารด้วยอย่างชัดเจนเพื่อ จัดการการอ้างอิงและรักษาความปลอดภัยของสถาปัตยกรรมเว็บไซต์ สคริปต์ที่เป็นอันตรายหรือโค้ดที่ 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 ที่ระบุโดยไม่บล็อกการเชื่อมต่อ ตรวจสอบว่าคุณได้กำหนดค่าReporting-Endpointsส่วนหัวการตอบกลับ HTTP เพื่อแมปชื่อปลายทางที่เลือกกับ URL จริงด้วย

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

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

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

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

ฟีเจอร์นี้สามารถใช้เป็นการเพิ่มประสิทธิภาพแบบต่อเนื่องในการตั้งค่า Content Security Policy (CSP) ที่มีอยู่

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

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

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

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

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

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