ข้อความแจ้งสิทธิ์ใหม่สำหรับการเข้าถึงเครือข่ายภายใน

Chris Thompson
Chris Thompson

เผยแพร่: 9 มิถุนายน 2025

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

ทีม Chrome ต้องการความคิดเห็นจากนักพัฒนาซอฟต์แวร์ที่สร้างเว็บแอปพลิเคชันที่อาศัยการเชื่อมต่อกับเครือข่ายภายในของผู้ใช้หรือซอฟต์แวร์ที่ทำงานในเครื่องของผู้ใช้ เพื่อทําความเข้าใจว่าการเปลี่ยนแปลงนี้ส่งผลต่อระบบนิเวศของเว็บอย่างไร ตั้งแต่ Chrome เวอร์ชัน 138 เป็นต้นไป คุณจะเลือกใช้ข้อจำกัดใหม่เหล่านี้ได้โดยไปที่ chrome://flags/#local-network-access-check แล้วตั้งค่า Flag เป็น "เปิดใช้ (การบล็อก)"

การเข้าถึงเครือข่ายภายในคืออะไร

การเข้าถึงการตั้งค่าเครือข่าย LAN จะจำกัดความสามารถของเว็บไซต์ในการส่งคำขอไปยังเซิร์ฟเวอร์ในเครือข่าย LAN ของผู้ใช้ (รวมถึงเซิร์ฟเวอร์ที่ทำงานในเครื่องของผู้ใช้) โดยกำหนดให้ผู้ใช้ต้องให้สิทธิ์เว็บไซต์ก่อนจึงจะส่งคำขอดังกล่าวได้ ความสามารถในการขอสิทธิ์นี้จะจำกัดอยู่ในบริบทที่ปลอดภัย

ข้อความแจ้ง "ค้นหาและเชื่อมต่อกับอุปกรณ์ในเครือข่ายภายในของคุณ"
ตัวอย่างข้อความแจ้งสิทธิ์เข้าถึงเครือข่ายภายในของ Chrome

แพลตฟอร์มอื่นๆ อีกมากมาย เช่น 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

Loopback คือปลายทางที่แก้ไขเป็นพื้นที่ "loopback" (127.0.0.0/8) ที่ระบุไว้ในส่วนที่ 3.2.1.3 ของ RFC1122 ของ IPv4, พื้นที่ "link-local" (169.254.0.0/16) ที่ระบุไว้ใน RFC3927 ของ IPv4, คำนำหน้า "Unique Local Address" (fcc00::/7) ที่ระบุไว้ในส่วนที่ 3 ของ RFC4193 ของ IPv6 หรือคำนำหน้า "link-local" (fe80::/10) ที่ระบุไว้ในส่วนที่ 2.5.6 ของ RFC4291 ของ IPv6

เครือข่ายสาธารณะคือปลายทางอื่นๆ

เนื่องจากสิทธิ์เข้าถึงเครือข่าย LAN ถูกจํากัดไว้สําหรับบริบทที่ปลอดภัย และอาจย้ายข้อมูลอุปกรณ์เครือข่าย LAN ไปยัง HTTPS ได้ยาก ระบบจึงยกเว้นคําขอเครือข่าย LAN ที่มีการกำหนดสิทธิ์ไม่ให้ได้รับการตรวจสอบเนื้อหาแบบผสมหาก Chrome ทราบว่าคําขอดังกล่าวจะไปที่เครือข่าย LAN ก่อนแก้ไขปลายทาง 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 เป็น "เปิดใช้ (การบล็อก)" ซึ่งรองรับการเรียกใช้ข้อความแจ้งสิทธิ์การเข้าถึงเครือข่ายภายในสำหรับคำขอที่เริ่มต้นโดยใช้ JavaScript fetch() API, การโหลดทรัพยากรย่อย และการไปยังส่วนย่อยของเฟรม

เว็บไซต์เดโมมีอยู่ที่ https://local-network-access-testing.glitch.me/ สำหรับการเรียกใช้คำขอเครือข่ายภายในรูปแบบต่างๆ

ปัญหาและข้อจำกัดที่ทราบ

  • ขณะนี้ข้อความแจ้งสิทธิ์แบบใหม่มีให้บริการใน Chrome บนเดสก์ท็อปเท่านั้น เรากำลังดำเนินการพอร์ตแอปไปยัง Chrome ใน Android อย่างเต็มกำลัง (ติดตามใน crbug.com/400455013)
  • การเชื่อมต่อ WebSockets (crbug.com/421156866), WebTransport (crbug.com/421216834) และ WebRTC (crbug.com/421223919) กับเครือข่ายภายในยังไม่ได้รับการจำกัดสิทธิ์ LNA
  • ปัจจุบันคําขอเครือข่ายภายในจาก Service Worker กำหนดให้ต้นทางของ Service Worker ได้รับสิทธิ์เข้าถึงเครือข่ายภายในแล้วก่อนหน้านี้
    • หากแอปพลิเคชันของคุณส่งคำขอเครือข่ายภายในจาก Service Worker ในปัจจุบันคุณจะต้องเรียกใช้คำขอเครือข่ายภายในแยกต่างหากจากแอปพลิเคชันเพื่อเรียกให้แสดงข้อความแจ้งสิทธิ์ (เรากําลังหาวิธีให้ผู้ปฏิบัติงานเรียกให้แสดงข้อความแจ้งสิทธิ์หากมีเอกสารที่ใช้งานอยู่ ดูข้อมูลเพิ่มเติมได้ที่ crbug.com/404887282)

Chrome 139 ขึ้นไป

เราตั้งใจที่จะจัดส่งการเข้าถึงเครือข่าย LAN โดยเร็วที่สุด เราตระหนักดีว่าเว็บไซต์บางแห่งอาจต้องใช้เวลาเพิ่มเติมในการอัปเดตคำอธิบายประกอบการเข้าถึงเครือข่าย LAN ดังนั้นเราจะเพิ่มช่วงทดลองใช้สำหรับต้นทางเพื่อให้เว็บไซต์เลือกไม่ใช้ข้อกำหนดด้านบริบทที่ปลอดภัยได้ชั่วคราวก่อนที่เราจะเปิดตัวการเข้าถึงเครือข่าย LAN โดยค่าเริ่มต้น ซึ่งควรเป็นเส้นทางการย้ายข้อมูลที่ชัดเจนขึ้นสำหรับนักพัฒนาซอฟต์แวร์ โดยเฉพาะอย่างยิ่งหากคุณอาศัยการเข้าถึงทรัพยากรเครือข่ายภายในผ่าน HTTP (เนื่องจากคำขอเหล่านี้จะถูกบล็อกเนื่องจากเป็นเนื้อหาผสมหากมีการขอจากหน้า HTTPS ในเบราว์เซอร์ที่ยังไม่รองรับการยกเว้นเนื้อหาผสมในการเข้าถึงเครือข่ายภายใน)

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

เราวางแผนที่จะผสานรวมสิทธิ์การเข้าถึงเครือข่าย LAN กับฟีเจอร์ต่างๆ ที่ส่งคำขอไปยังเครือข่าย LAN ได้ต่อไป ตัวอย่างเช่น เราวางแผนที่จะเปิดตัวการเข้าถึงเครือข่าย LAN สำหรับการเชื่อมต่อ WebSocket, WebTransport และ WebRTC ในเร็วๆ นี้

เราจะแชร์ข้อมูลเพิ่มเติมเมื่อใกล้ถึงเวลาที่เราจะเปิดตัวการเข้าถึงเครือข่ายภายในใน Chrome อย่างเต็มรูปแบบ

ต้องการความคิดเห็น

ความคิดเห็นก่อนหน้านี้เกี่ยวกับการพัฒนาการเข้าถึงเครือข่ายส่วนตัวมีประโยชน์อย่างยิ่งในการชี้แนะแนวทางใหม่สำหรับสิทธิ์การเข้าถึงเครือข่ายภายใน เราขอขอบคุณอีกครั้งสำหรับทุกคนที่มีส่วนร่วมตลอดหลายปีที่ผ่านมา

หากคุณพัฒนาหรือเป็นผู้ใช้เว็บไซต์ที่อาศัยการเชื่อมต่อกับเครือข่ายภายในหรือซอฟต์แวร์ที่ทำงานในเครื่องของผู้ใช้ ทีม Chrome ยินดีรับฟังความคิดเห็นและกรณีการใช้งานของคุณ คุณช่วยได้ 2 วิธีดังนี้