Google เสนอให้ลบ XSLT ออกจากเว็บเบราว์เซอร์ จุดประกายการถกเถียงอย่างเดือดดาลในหมู่นักพัฒนา

ทีมชุมชน BigGo
Google เสนอให้ลบ XSLT ออกจากเว็บเบราว์เซอร์ จุดประกายการถกเถียงอย่างเดือดดาลในหมู่นักพัฒนา

Google ได้จุดประกายการถกเถียงอย่างเดือดดาลในชุมชนนักพัฒนาเว็บ โดยการเสนอให้ลบการรองรับ XSLT (Extensible Stylesheet Language Transformations) ออกจากเว็บเบราว์เซอร์ ข้อเสนอดังกล่าวที่ระบุไว้ใน GitHub issue อ้างถึงช่องโหว่ด้านความปลอดภัยและการใช้งานที่ลดลงเป็นเหตุผลหลักในการยกเลิก อย่างไรก็ตาม ข้อเสนอนี้ได้รับการต่อต้านอย่างมากจากนักพัฒนาที่พึ่งพาเทคโนโลยีนี้ โดยเฉพาะสำหรับการจัดรูปแบบ RSS feed และระบบเก่า

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

ข้อเสนอนี้เกิดจากช่องโหว่ด้านความปลอดภัยร้ายแรงที่ค้นพบในการใช้งาน XSLT ในเบราว์เซอร์หลัก งานวิจัยล่าสุดเผยให้เห็นบั๊กหลายตัวที่ไม่ถูกตรวจพบมานานกว่า 20 ปี โดยบางตัวสามารถเปิดช่องให้มีการเรียกใช้โค้ดตามอำเภอใจได้ ไลบรารีพื้นฐานที่ใช้โดยเบราว์เซอร์ เช่น libxslt ใน Chromium เป็นโค้ดเบส C/C++ ที่เก่าแก่และมีความเสี่ยงต่อปัญหาความปลอดภัยของหน่วยความจำ เช่น buffer overflow โดยเฉพาะ Google โต้แย้งว่าเนื่องจากการใช้งาน XSLT ลดลงเหลือน้อยกว่า 0.01% ของการโหลดหน้าเว็บ ความเสี่ยงด้านความปลอดภัยจึงมีน้ำหนักมากกว่าประโยชน์ของการรักษาโค้ดที่ซับซ้อนนี้

XSLT: ภาษาสำหรับแปลงเอกสาร XML เป็นรูปแบบอื่น ใช้กันทั่วไปในการจัดสไตล์ RSS feed และแปลงข้อมูลระหว่างโครงสร้างที่แตกต่างกัน

สstatisticsการใช้งาน XSLT :

  • การใช้งานปัจจุบัน: น้อยกว่า 0.01% ของการโหลดหน้าเว็บตามข้อมูลจากเบราว์เซอร์
  • ความซับซ้อนของโค้ด: ประมาณ 100,000 บรรทัดของโค้ดเฉพาะทางใน browser engines
  • ช่องโหว่ด้านความปลอดภัย: พบบั๊กหลายตัวหลังจากผ่านไปกว่า 20 ปี บางตัวสามารถเปิดช่องให้ดำเนินการโค้ดได้โดยอำเภอใจ

ชุมชนต่อต้านเรื่องความเข้ากันได้แบบย้อนหลัง

ชุมชนนักพัฒนาตอบสนองด้วยการต่อต้านอย่างแรง โดยมองว่าข้อเสนอนี้เป็นอีกตัวอย่างหนึ่งของความเต็มใจของ Google ที่จะทำลายความเข้ากันได้ของเว็บเพื่อความสะดวก นักพัฒนาหลายคนเน้นย้ำว่า XSLT มีบทบาทสำคัญในการทำให้ RSS feed อ่านได้ในเบราว์เซอร์ โดยแปลง XML ดิบเป็นการนำเสนอ HTML ที่เป็นมิตรกับผู้ใช้ การลบออกจะทำให้ RSS feed หลายพันรายการที่พึ่งพา XSLT stylesheet ในการแสดงเนื้อหาอย่างเหมาะสมเสียหายได้

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

นักวิจารณ์โต้แย้งว่าแนวทางของ Google ขัดแย้งกับหลักการพื้นฐานของเว็บเรื่องความเข้ากันได้แบบย้อนหลัง ซึ่งทำให้หน้าเว็บอายุ 30 ปียังคงทำงานได้ในปัจจุบัน

โซลูชันทางเลือกและการตอบสนองของอุตสาหกรรม

Google ได้พัฒนา polyfill ที่ใช้ WebAssembly เป็นตัวทดแทนที่เป็นไปได้ แต่ขนาด 46 เมกะไบต์ได้รับการวิจารณ์จากนักพัฒนาที่กังวลเรื่องผลกระทบต่อประสิทธิภาพ WebKit แสดงการสนับสนุนอย่างระมัดระวังต่อการลบ โดยระบุว่าพวกเขาจะรอให้เบราว์เซอร์อื่นนำการเปลี่ยนแปลงนี้ไปใช้ก่อน อย่างไรก็ตาม ชุมชนได้เสนอแนวทางทางเลือก เช่น การส่ง polyfill โดยตรงในเบราว์เซอร์หรือการอัปเดตเป็นการใช้งาน XSLT ที่ปลอดภัยต่อหน่วยความจำที่เขียนด้วยภาษาเช่น Rust

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

ทางเลือกที่เสนอ:

  • WebAssembly polyfill (ขนาด 46MB)
  • การใช้งานที่ปลอดภัยด้านหน่วยความจำใน Rust (เช่น oxslt)
  • การประมวลผล XSLT ฝั่งเซิร์ฟเวอร์
  • การเผยแพร่ HTML โดยตรงแทนการแปลง XML

ผลกระทบต่อ RSS และระบบเก่า

การลบจะส่งผลกระทบโดยเฉพาะต่อผู้เผยแพร่ RSS feed และบริษัทโฮสติ้งพอดแคสต์ที่ใช้ XSLT ในการสร้างเวอร์ชันที่น่าสนใจและอ่านได้ของ feed ของพวกเขา ระบบเหล่านี้หลายระบบถูกฝังอยู่ในอุปกรณ์ฮาร์ดแวร์หรือบริการเก่าที่ไม่สามารถอัปเดตได้ง่าย การเปลี่ยนแปลงจะบังคับให้ผู้สร้างเนื้อหาต้องรักษาเวอร์ชัน HTML แยกต่างหากของ feed หรือยอมรับว่าผู้ใช้จะเห็น XML ดิบเมื่อเข้าชม URL ของ feed โดยตรง

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

อ้างอิง: Should we remove XSLT from the web platform? #11523