Lo ngại về bảo mật nổi lên với libxml được tích hợp trong trình phân tích HTML hiệu năng cao Nokolexbor

BigGo Editorial Team
Lo ngại về bảo mật nổi lên với libxml được tích hợp trong trình phân tích HTML hiệu năng cao Nokolexbor

Sự ra mắt gần đây của Nokolexbor, một trình phân tích HTML5 hiệu năng cao dành cho Ruby với lời hứa cải thiện tốc độ đáng kể so với Nokogiri, đã làm dấy lên một cuộc thảo luận quan trọng về sự cân bằng giữa hiệu năng và bảo mật trong các công cụ phát triển web hiện đại.

Đánh đổi giữa Bảo mật và Hiệu năng

Trong khi Nokolexbor tự hào về các chỉ số hiệu năng ấn tượng, cho thấy tốc độ xử lý bộ chọn CSS nhanh hơn tới 997 lần so với Nokogiri, cộng đồng lập trình viên đã nêu lên những lo ngại đáng kể về phương thức bảo trì bảo mật của nó. Vấn đề cốt lõi xoay quanh việc Nokolexbor sử dụng libxml 2.11 tích hợp sẵn để hỗ trợ XPath, phiên bản được phát hành vào tháng 4 năm 2023. Cách tiếp cận này trong việc quản lý phụ thuộc đã thu hút sự chú ý từ các lập trình viên quan tâm đến bảo mật, đặc biệt khi xét đến lịch sử các lỗ hổng bảo mật thường xuyên của libxml.

Gần như cứ mỗi hai bản phát hành libxml lại đi kèm với một CVE, vì vậy tôi tò mò liệu có kế hoạch nâng cấp phiên bản libxml hay không, vì nó không sử dụng libxml của hệ thống (giống như nokogiri).

So sánh hiệu năng với Nokogiri:

  • Phân tích HTML: Nhanh hơn 5.22 lần (487.6 so với 93.5 lần lặp/giây)
  • Bộ chọn CSS: Nhanh hơn tới 997.87 lần (50798.8 so với 50.9 lần lặp/giây)
  • Các thao tác tổng hợp: Nhanh hơn 142.11 lần (7437.6 so với 52.3 lần lặp/giây)

Lo ngại về Hoạt động Phát triển

Tình trạng bảo trì của dự án cũng trở thành điểm thảo luận, khi các thành viên cộng đồng nhận thấy thiếu các bản cập nhật trong hơn bảy tháng qua. Mặc dù một số lập trình viên cho rằng các yêu cầu phân tích HTML5 không thay đổi nhiều trong thời gian này, những tác động bảo mật của việc duy trì các phụ thuộc đã lỗi thời vẫn là một mối quan ngại cấp thiết. Điều này đặc biệt đáng chú ý khi so sánh với cách tiếp cận của Nokogiri, vốn duy trì lịch trình cập nhật bảo mật nghiêm ngặt cho việc triển khai libxml của mình.

Các nền tảng được hỗ trợ:

  • Linux: x86_64 (glibc >= 2.17)
  • macOS: x86_64 và arm64
  • Windows: ucr64, mingw32 và mingw64

Các Giải pháp Thay thế

Cuộc thảo luận của cộng đồng đã làm nổi bật một số giải pháp thay thế trong hệ sinh thái, bao gồm các giải pháp dựa trên Rust như Selma sử dụng trình phân tích lol_html của Cloudflare, và các triển khai Python như selectolax cũng tận dụng khả năng của Lexbor. Những giải pháp thay thế này cho thấy một hệ sinh thái đang phát triển của các giải pháp phân tích HTML hiệu năng cao trên các ngôn ngữ lập trình khác nhau, mỗi giải pháp đều có cách tiếp cận riêng để cân bằng giữa hiệu năng và các cân nhắc về bảo mật.

Tình huống này làm nổi bật một thách thức rộng lớn hơn trong hệ sinh thái phát triển phần mềm: nhu cầu cân bằng giữa cải tiến hiệu năng tiên tiến với các thực hành bảo mật bền vững. Khi các công cụ phát triển tiếp tục phát triển, phản ứng của cộng đồng đối với Nokolexbor như một lời nhắc nhở rằng tốc độ đơn thuần không đủ để đảm bảo việc áp dụng rộng rãi trong môi trường sản xuất.

Nguồn tham khảo: Nokolexbor: Trình phân tích HTML5 hiệu năng cao cho Ruby dựa trên Lexbor