Google đề xuất loại bỏ XSLT khỏi trình duyệt web, gây tranh cãi gay gắt trong cộng đồng lập trình viên

Nhóm Cộng đồng BigGo
Google đề xuất loại bỏ XSLT khỏi trình duyệt web, gây tranh cãi gay gắt trong cộng đồng lập trình viên

Google đã châm ngòi cho một cuộc tranh luận sôi nổi trong cộng đồng phát triển web bằng việc đề xuất loại bỏ hỗ trợ XSLT (Extensible Stylesheet Language Transformations) khỏi các trình duyệt web. Đề xuất này, được nêu trong một issue trên GitHub , viện dẫn các lỗ hổng bảo mật và việc sử dụng giảm dần là những lý do chính cho việc ngừng hỗ trợ. Tuy nhiên, đề xuất này đã gặp phải sự phản đối mạnh mẽ từ các lập trình viên vẫn dựa vào công nghệ này, đặc biệt là để định dạng RSS feed và các hệ thống cũ.

Mối quan ngại về bảo mật thúc đẩy đề xuất loại bỏ

Đề xuất này xuất phát từ các lỗ hổng bảo mật nghiêm trọng được phát hiện trong việc triển khai XSLT trên các trình duyệt lớn. Nghiên cứu gần đây đã tiết lộ nhiều lỗi không được phát hiện trong hơn 20 năm, với một số lỗi cho phép thực thi mã tùy ý. Các thư viện cơ bản được sử dụng bởi trình duyệt, chẳng hạn như libxslt trong Chromium , là những codebase C/C++ đã cũ và đặc biệt dễ bị tổn thương bởi các vấn đề về an toàn bộ nhớ như buffer overflow. Google lập luận rằng vì việc sử dụng XSLT đã giảm xuống dưới 0,01% số lần tải trang, các rủi ro bảo mật đã vượt quá lợi ích của việc duy trì mã phức tạp này.

XSLT: Một ngôn ngữ để chuyển đổi tài liệu XML sang các định dạng khác, thường được sử dụng để tạo kiểu cho RSS feed và chuyển đổi dữ liệu giữa các cấu trúc khác nhau.

Thống kê sử dụng XSLT:

  • Mức sử dụng hiện tại: <0,01% lượt tải trang theo dữ liệu từ trình duyệt
  • Độ phức tạp mã nguồn: ~100.000 dòng mã chuyên biệt trong các engine trình duyệt
  • Lỗ hổng bảo mật: Nhiều lỗi được phát hiện sau hơn 20 năm, một số cho phép thực thi mã tùy ý

Phản ứng dữ dội của cộng đồng về tính tương thích ngược

Cộng đồng lập trình viên đã phản ứng với sự phản đối mạnh mẽ, coi đề xuất này là một ví dụ khác về sự sẵn sàng của Google trong việc phá vỡ tính tương thích web vì sự tiện lợi. Nhiều lập trình viên nhấn mạnh rằng XSLT đóng vai trò quan trọng trong việc làm cho RSS feed có thể đọc được trong trình duyệt, chuyển đổi XML thô thành các bản trình bày HTML thân thiện với người dùng. Việc loại bỏ sẽ thực sự phá vỡ hàng nghìn RSS feed hiện có dựa vào stylesheet XSLT để hiển thị nội dung đúng cách.

Thật không thể hiểu được khi bạn mở giải pháp web mở để đăng ký nội dung web (RSS) mà lại được chào đón bằng một bức tường văn bản không được định dạng. Ngay bây giờ, XSLT là giải pháp tạm thời tồi tệ cho sự bất lực cơ bản của trình duyệt đó.

Các nhà phê bình lập luận rằng cách tiếp cận của Google mâu thuẫn với nguyên tắc cơ bản của web về tính tương thích ngược, điều đã cho phép các trang web 30 năm tuổi vẫn hoạt động ngày nay.

Các giải pháp thay thế và phản ứng của ngành

Google đã phát triển một polyfill dựa trên WebAssembly như một sự thay thế tiềm năng, nhưng kích thước 46 megabyte đã thu hút sự chỉ trích từ các lập trình viên lo ngại về tác động hiệu suất. WebKit đã bày tỏ sự ủng hộ thận trọng cho việc loại bỏ, cho biết họ sẽ đợi một trình duyệt khác triển khai thay đổi này trước. Tuy nhiên, cộng đồng đã đề xuất các cách tiếp cận thay thế, chẳng hạn như tích hợp polyfill trực tiếp vào trình duyệt hoặc cập nhật lên các triển khai XSLT an toàn bộ nhớ được viết bằng các ngôn ngữ như Rust .

Cuộc tranh luận phản ánh những căng thẳng rộng lớn hơn giữa các nhà cung cấp trình duyệt muốn giảm gánh nặng bảo trì và các lập trình viên đánh giá cao sự ổn định của web. Trong khi Google định vị điều này như một biện pháp bảo mật cần thiết, các nhà phê bình coi đây là một phần của mô hình mà các nhà cung cấp trình duyệt lớn ưu tiên sự tiện lợi của riêng họ hơn nhu cầu người dùng và tính tương thích web.

Các Giải Pháp Thay Thế Được Đề Xuất:

  • Polyfill WebAssembly (kích thước 46MB)
  • Các triển khai an toàn bộ nhớ bằng Rust (ví dụ: oxslt)
  • Xử lý XSLT phía máy chủ
  • Xuất bản HTML trực tiếp thay vì chuyển đổi XML

Tác động đến RSS và các hệ thống cũ

Việc loại bỏ sẽ đặc biệt ảnh hưởng đến các nhà xuất bản RSS feed và các công ty hosting podcast sử dụng XSLT để tạo ra các phiên bản hấp dẫn, dễ đọc của feed của họ. Nhiều hệ thống này được nhúng trong các thiết bị phần cứng hoặc dịch vụ cũ không thể dễ dàng cập nhật. Thay đổi này sẽ buộc các nhà tạo nội dung phải duy trì các phiên bản HTML riêng biệt của feed hoặc chấp nhận rằng người dùng sẽ thấy XML thô khi truy cập trực tiếp URL feed.

Tranh cãi này làm nổi bật thách thức đang diễn ra trong việc cân bằng bảo mật, chi phí bảo trì và tính tương thích ngược trong sự phát triển nền tảng web. Khi các trình duyệt tiếp tục thêm các tính năng mới trong khi xem xét loại bỏ những tính năng cũ, cuộc tranh luận về XSLT đóng vai trò như một nghiên cứu tình huống về cách những quyết định như vậy ảnh hưởng đến hệ sinh thái web rộng lớn hơn.

Tham khảo: Should we remove XSLT from the web platform? #11523