เผยแพร่: 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 ใหม่
คำขอประเภทใดบ้างที่ได้รับผลกระทบ
สำหรับเป้าหมายแรกของการเข้าถึงเครือข่ายภายใน เราถือว่า "คำขอเครือข่ายภายใน" คือคำขอจากเครือข่ายสาธารณะไปยังเครือข่ายภายในหรือ ปลายทางแบบวนรอบ
เครือข่ายภายในคือปลายทางที่แปลงเป็นพื้นที่ที่อยู่ส่วนตัว
ที่กำหนดไว้ในส่วนที่ 3 ของ RFC1918 ใน
IPv4 (เช่น 192.168.0.0/16
) ที่อยู่ IPv6 ที่แมปกับ IPv4 ซึ่งที่อยู่ IPv4
ที่แมปเป็นแบบส่วนตัว หรือที่อยู่ IPv6 ที่อยู่นอกซับเน็ต ::1/128
, 2000::/3
และ ff00::/8
ลูปแบ็กคือปลายทางใดก็ตามที่เปลี่ยนเส้นทางไปยังพื้นที่ "ลูปแบ็ก"
(127.0.0.0/8
) ที่กำหนดไว้ในส่วน 3.2.1.3 ของ
RFC1122 ของ IPv4, พื้นที่ "ลิงก์เฉพาะ"
(169.254.0.0/16
) ที่กำหนดไว้ใน RFC3927 ของ
IPv4, คำนำหน้า "ที่อยู่เฉพาะภายใน" (fcc00::/7
) ที่กำหนดไว้ในส่วน 3 ของ
RFC4193 ของ IPv6 หรือคำนำหน้า "ลิงก์เฉพาะ"
(fe80::/10
) ที่กำหนดไว้ในส่วน 2.5.6 ของ
RFC4291 ของ IPv6
ดูการแมปที่อยู่ 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 ขึ้นไป
เราตั้งใจที่จะเปิดตัวการเข้าถึงเครือข่าย LAN โดยเร็วที่สุด เราทราบว่าบางเว็บไซต์อาจต้องใช้เวลาเพิ่มเติมในการอัปเดตด้วยคำอธิบายประกอบการเข้าถึงเครือข่ายภายใน จึงจะเพิ่มช่วงทดลองใช้ Origin เพื่อให้เว็บไซต์เลือกไม่ใช้ชั่วคราวได้ ข้อกำหนดของบริบทที่ปลอดภัยก่อนที่เราจะเปิดตัวการเข้าถึงเครือข่ายภายในโดยค่าเริ่มต้น ซึ่งจะช่วยให้เส้นทางการย้ายข้อมูลชัดเจนยิ่งขึ้นสำหรับนักพัฒนาแอป โดยเฉพาะอย่างยิ่งหากคุณต้องอาศัยการเข้าถึงทรัพยากรในเครือข่าย LAN ผ่าน HTTP (เนื่องจากคำขอเหล่านี้จะถูกบล็อกเป็นเนื้อหาผสมหากมีการขอจากหน้า HTTPS ในเบราว์เซอร์ที่ยังไม่รองรับข้อยกเว้นเนื้อหาผสมสำหรับการเข้าถึงเครือข่าย LAN)
นอกจากนี้ เราจะเพิ่มนโยบาย Chrome สำหรับองค์กรเพื่อควบคุมว่าเว็บไซต์ใด ทำคำขอเครือข่ายภายในได้และไม่ได้ (การให้สิทธิ์ล่วงหน้าหรือการปฏิเสธสิทธิ์ล่วงหน้า สำหรับเว็บไซต์เหล่านั้น) ซึ่งจะช่วยให้การติดตั้ง Chrome ที่มีการจัดการ เช่น การติดตั้งในสภาพแวดล้อมขององค์กร ไม่แสดงคำเตือนสำหรับกรณีการใช้งานที่ทราบว่าตั้งใจ หรือเพื่อล็อกดาวน์เพิ่มเติมและป้องกันไม่ให้เว็บไซต์ขอสิทธิ์ได้เลย
เราวางแผนที่จะผสานรวมสิทธิ์เข้าถึงเครือข่าย LAN กับ ฟีเจอร์ต่างๆ ที่สามารถส่งคำขอไปยังเครือข่าย LAN ต่อไป ตัวอย่างเช่น เราวางแผนที่จะเปิดตัวการเข้าถึงเครือข่าย LAN สำหรับการเชื่อมต่อ WebSocket, WebTransport และ WebRTC ในเร็วๆ นี้
เราจะแชร์ข้อมูลเพิ่มเติมเมื่อใกล้ถึงเวลาเปิดตัวการเข้าถึงเครือข่ายภายในใน Chrome อย่างเต็มรูปแบบ
เราต้องการความคิดเห็นจากคุณ
ความคิดเห็นก่อนหน้านี้เกี่ยวกับการพัฒนาการเข้าถึงเครือข่ายส่วนตัวมีคุณค่าอย่างยิ่ง ในการนำทางเราไปสู่แนวทางสิทธิ์การเข้าถึงเครือข่าย LAN ใหม่ เราขอขอบคุณอีกครั้งสำหรับทุกคนที่มีส่วนเกี่ยวข้องในช่วงหลายปีที่ผ่านมา
หากคุณเป็นผู้พัฒนาหรือผู้ใช้เว็บไซต์ที่ต้องเชื่อมต่อกับเครือข่ายภายในของผู้ใช้หรือซอฟต์แวร์ที่ทำงานในเครื่องของผู้ใช้ ทีม Chrome ยินดีรับฟังความคิดเห็นและกรณีการใช้งานของคุณ คุณสามารถทำได้ 2 สิ่งเพื่อช่วยเหลือ ดังนี้
- ไปที่
chrome://flags#local-network-access-check
ตั้งค่าสถานะเป็น "เปิดใช้ (การบล็อก)" และดูว่าเว็บไซต์ของคุณทริกเกอร์ข้อความแจ้งขอสิทธิ์ใหม่ได้อย่างถูกต้องหรือไม่ (และทํางานตามที่คาดไว้หลังจากที่คุณให้สิทธิ์) - หากพบปัญหาหรือมีความคิดเห็น โปรดยื่นปัญหาที่เครื่องมือติดตามปัญหาของ Chromium หรือในที่เก็บของ GitHub สำหรับข้อกำหนด LNA Chrome ยินดีรับฟังความคิดเห็นจากคุณ