เผยแพร่: 9 มิถุนายน 2025
Chrome จะเพิ่มข้อความแจ้งขอสิทธิ์ใหม่สำหรับเว็บไซต์ที่เชื่อมต่อกับเครือข่าย LAN ของผู้ใช้ ซึ่งเป็นส่วนหนึ่งของข้อกำหนดการเข้าถึงเครือข่าย LAN โดยมีเป้าหมายเพื่อปกป้องผู้ใช้จากการโจมตีแบบ Cross-Site Request Forgery (CSRF) ที่กำหนดเป้าหมายไปยังเราเตอร์และอุปกรณ์อื่นๆ ในเครือข่ายส่วนตัว รวมถึงลด ความสามารถของเว็บไซต์ในการใช้คำขอเหล่านี้เพื่อสร้างลายนิ้วมือของเครือข่ายในเครื่องของผู้ใช้
ทีม Chrome กำลังมองหาความคิดเห็นจากนักพัฒนาแอปที่สร้างเว็บแอปพลิเคชันซึ่งต้องอาศัยการเชื่อมต่อกับเครือข่ายภายในของผู้ใช้หรือซอฟต์แวร์ที่ทำงานในเครื่องของผู้ใช้ เพื่อทำความเข้าใจว่าการเปลี่ยนแปลงนี้ส่งผลต่อระบบนิเวศของเว็บอย่างไร
ตั้งแต่ Chrome 138 เป็นต้นไป คุณสามารถเลือกใช้ข้อจำกัดใหม่เหล่านี้ได้โดย
ไปที่ chrome://flags/#local-network-access-check แล้วตั้งค่า Flag เป็น
"เปิดใช้ (บล็อก)"
การเข้าถึงเครือข่าย LAN คืออะไร
การเข้าถึงเครือข่ายภายใน จำกัดความสามารถของเว็บไซต์ในการส่งคำขอไปยังเซิร์ฟเวอร์ในเครือข่ายภายในของผู้ใช้ (รวมถึงเซิร์ฟเวอร์ที่ทำงานในเครื่องของผู้ใช้) โดยกำหนดให้ผู้ใช้ ต้องให้สิทธิ์แก่เว็บไซต์ก่อนจึงจะส่งคำขอดังกล่าวได้ ความสามารถในการ ขอสิทธิ์นี้จะจำกัดไว้เฉพาะบริบทที่ปลอดภัย
แพลตฟอร์มอื่นๆ อีกมากมาย เช่น Android iOS และ MacOS มีสิทธิ์เข้าถึงเครือข่ายในพื้นที่ เช่น คุณอาจให้สิทธิ์นี้ ในการเข้าถึงเครือข่ายภายในแก่แอป Google Home เมื่อตั้งค่า อุปกรณ์ Google TV และ Chromecast ใหม่
คำขอประเภทใดบ้างที่ได้รับผลกระทบ
สำหรับเป้าหมายแรกของการเข้าถึงเครือข่ายภายใน เราถือว่า "คำขอเครือข่ายภายใน" คือคำขอจากเครือข่ายสาธารณะไปยังเครือข่ายภายในหรือปลายทางแบบวนรอบ
เครือข่ายภายในคือปลายทางที่เปลี่ยนเป็นที่อยู่ที่สงวนไว้สำหรับ
การใช้งานในพื้นที่ เช่น ที่อยู่ IPv4 ส่วนตัวที่ระบุไว้ในส่วนที่ 3 ของ RFC1918 (เช่น 192.168.0.0/16),
คำนำหน้า "ลิงก์ภายใน" ของ IPv4 (169.254.0.0/16) ที่กำหนดไว้ใน
RFC3927, คำนำหน้า "ที่อยู่เฉพาะภายใน" ของ IPv6 (fc00::/7) ที่กำหนดไว้ในส่วนที่ 3 ของ
RFC4193, คำนำหน้า "ลิงก์ภายใน" ของ IPv6 (fe80::/10) ที่กำหนดไว้ในส่วนที่ 2.5.6 ของ
RFC4291 หรือที่อยู่ IPv6 ที่แมปกับ IPv4
(::ffff:0:0/96) ซึ่งที่อยู่ IPv4 ที่แมปเป็นที่อยู่ภายใน
ลูปแบ็กคือปลายทางที่วนกลับมายังเครื่องภายใน
(เช่น เช่น คำนำหน้าลูปแบ็ก IPv4 (127.0.0.0/8) ที่
กำหนดไว้ในส่วน 3.2.1.3 ของ RFC1122 หรือ
ลูปแบ็ก IPv6 (::1/128) ที่กำหนดไว้ในส่วน 2.5.3 ของ
RFC4291
ดูการแมปที่อยู่ IP กับพื้นที่ที่อยู่ทั้งหมดได้ในตารางในข้อกำหนดการเข้าถึงเครือข่าย LAN
เครือข่ายสาธารณะคือปลายทางอื่นๆ
เนื่องจากสิทธิ์เข้าถึงเครือข่ายภายในจำกัดเฉพาะบริบทที่ปลอดภัย และอาจย้ายข้อมูลอุปกรณ์ในเครือข่ายภายในไปยัง HTTPS ได้ยาก คำขอเครือข่ายภายในที่ต้องใช้สิทธิ์จึงจะได้รับการยกเว้นจากการตรวจสอบเนื้อหาแบบผสมหาก Chrome ทราบว่าคำขอจะไปยังเครือข่ายภายใน ก่อนที่จะแก้ไขปลายทาง Chrome จะทราบว่าคำขอจะไปยังเครือข่ายภายในในกรณีต่อไปนี้
- ชื่อโฮสต์ของคำขอคือตัวอักษร IP ส่วนตัว (เช่น
192.168.0.1) - ชื่อโฮสต์ของคำขอคือ
.localโดเมน - ระบบจะใส่คำอธิบายประกอบการโทร
fetch()ด้วยตัวเลือกtargetAddressSpace: "local".
// Example 1: Private IP literal is exempt from mixed content.
fetch("http://192.168.0.1/ping");
// Example 2: `.local` domain is exempt from mixed content.
fetch("http://router.local/ping");
// Example 3: Public domain is not exempt from mixed content,
// even if it resolves to a local network address.
fetch("http://example.com/ping");
// Example 4: Adding the `targetAddressSpace` option flags that
// the request will go to the local network, and is thus exempt
// from mixed content.
fetch("http://example.com/ping", {
targetAddressSpace: "local",
});
การเปลี่ยนแปลงที่จะเกิดขึ้นใน Chrome
Chrome 138
การเข้าถึงเครือข่าย LAN เวอร์ชันแรกของเราพร้อมให้ทดสอบแบบเลือกใช้ใน Chrome 138 แล้ว ผู้ใช้สามารถเปิดใช้ข้อความแจ้งขอสิทธิ์ใหม่ได้โดยตั้งค่า
chrome://flags#local-network-access-check เป็น "เปิดใช้ (บล็อก)" ซึ่งจะ
รองรับการทริกเกอร์ข้อความแจ้งขอสิทธิ์เข้าถึงเครือข่าย LAN สำหรับคำขอ
ที่เริ่มต้นโดยใช้ JavaScript fetch() API, การโหลดทรัพยากรย่อย และการนำทางของเฟรมย่อย
เว็บไซต์สาธิตพร้อมใช้งานที่ https://lna-testing.notyetsecure.com/ เพื่อทริกเกอร์คำขอเครือข่ายภายในรูปแบบต่างๆ
ปัญหาและข้อจำกัดที่ทราบ
- การเชื่อมต่อ WebSockets (crbug.com/421156866), WebTransport (crbug.com/421216834) และ WebRTC (crbug.com/421223919) กับ เครือข่ายในพื้นที่ยังไม่ได้รับการควบคุมโดยสิทธิ์ LNA
- คำขอเครือข่ายภายในจาก Service Worker และ Shared Worker
กำหนดให้ต้นทางของ Worker ต้องได้รับสิทธิ์เข้าถึงเครือข่ายภายใน
ก่อนหน้านี้
- หากแอปพลิเคชันส่งคำขอเครือข่าย LAN จาก Service Worker คุณจะต้องทริกเกอร์คำขอเครือข่าย LAN แยกต่างหาก จากแอปพลิเคชันเพื่อทริกเกอร์ข้อความแจ้งขอสิทธิ์ (เรากำลังหาวิธีให้ผู้ปฏิบัติงานทริกเกอร์ข้อความแจ้งขอสิทธิ์หากมีเอกสารที่ใช้งานอยู่ โปรดดู crbug.com/404887282)
Chrome 139 ขึ้นไป
เราตั้งใจที่จะเปิดตัวการเข้าถึงเครือข่ายในพื้นที่โดยเร็วที่สุด เราทราบว่าบางเว็บไซต์อาจต้องใช้เวลาเพิ่มเติมในการอัปเดตด้วยคำอธิบายประกอบการเข้าถึงเครือข่ายภายใน จึงจะเพิ่มช่วงทดลองใช้ Origin เพื่อให้เว็บไซต์เลือกไม่ใช้ชั่วคราวได้ ข้อกำหนดของบริบทที่ปลอดภัยก่อนที่เราจะเปิดตัวการเข้าถึงเครือข่ายภายในโดยค่าเริ่มต้น ซึ่งจะช่วยให้เส้นทางการย้ายข้อมูลชัดเจนยิ่งขึ้นสำหรับนักพัฒนาแอป โดยเฉพาะอย่างยิ่งหากคุณต้องอาศัยการเข้าถึงทรัพยากรในเครือข่าย LAN ผ่าน HTTP (เนื่องจากคำขอเหล่านี้จะถูกบล็อกเป็นเนื้อหาผสมหากมีการขอจากหน้า HTTPS ในเบราว์เซอร์ที่ยังไม่รองรับข้อยกเว้นเนื้อหาผสมสำหรับการเข้าถึงเครือข่าย LAN)
นอกจากนี้ เราจะเพิ่มนโยบาย Chrome สำหรับองค์กรเพื่อควบคุมว่าเว็บไซต์ใด ทำคำขอเครือข่ายภายในได้และไม่ได้ (การให้สิทธิ์ล่วงหน้าหรือการปฏิเสธสิทธิ์ล่วงหน้า สำหรับเว็บไซต์เหล่านั้น) ซึ่งจะช่วยให้การติดตั้ง Chrome ที่มีการจัดการ เช่น การติดตั้งในสภาพแวดล้อมขององค์กร ไม่แสดงคำเตือนสำหรับกรณีการใช้งานที่ทราบและตั้งใจไว้ หรือเพื่อล็อกดาวน์เพิ่มเติมและป้องกันไม่ให้เว็บไซต์ขอสิทธิ์ได้เลย
เราวางแผนที่จะผสานรวมสิทธิ์การเข้าถึงเครือข่าย LAN กับ ฟีเจอร์ต่างๆ ที่สามารถส่งคำขอไปยังเครือข่าย LAN ต่อไป ตัวอย่างเช่น เราวางแผนที่จะเปิดตัวการเข้าถึงเครือข่าย LAN สำหรับการเชื่อมต่อ WebSocket, WebTransport และ WebRTC ในเร็วๆ นี้
เราจะแชร์ข้อมูลเพิ่มเติมเมื่อใกล้ถึงเวลาที่เราจะเปิดตัวการเข้าถึงเครือข่ายภายในใน Chrome ได้อย่างเต็มรูปแบบ
เราต้องการความคิดเห็นจากคุณ
ความคิดเห็นก่อนหน้านี้เกี่ยวกับการพัฒนาการเข้าถึงเครือข่ายส่วนตัวมีคุณค่าอย่างยิ่ง ในการนำทางเราไปสู่แนวทางสิทธิ์การเข้าถึงเครือข่าย LAN ใหม่ เราขอขอบคุณอีกครั้งสำหรับทุกคนที่มีส่วนเกี่ยวข้องในช่วงหลายปีที่ผ่านมา
หากคุณเป็นผู้พัฒนาหรือผู้ใช้เว็บไซต์ที่ต้องเชื่อมต่อกับเครือข่ายภายในของผู้ใช้หรือซอฟต์แวร์ที่ทำงานในเครื่องของผู้ใช้ ทีม Chrome ยินดีรับฟังความคิดเห็นและ Use Case ของคุณ คุณสามารถทำได้ 2 สิ่งเพื่อช่วยเหลือ ดังนี้
- ไปที่
chrome://flags#local-network-access-checkตั้งค่าสถานะเป็น "เปิดใช้ (การบล็อก)" และดูว่าเว็บไซต์ของคุณทริกเกอร์ข้อความแจ้งขอสิทธิ์ใหม่ได้อย่างถูกต้องหรือไม่ (และทํางานตามที่คาดไว้หลังจากที่คุณให้สิทธิ์) - หากพบปัญหาหรือมีความคิดเห็น โปรดยื่นปัญหาที่เครื่องมือติดตามปัญหาของ Chromium หรือในที่เก็บของ GitHub สำหรับข้อกำหนด LNA Chrome ยินดีรับฟังความคิดเห็นจากคุณ