Kekhawatiran Keamanan Muncul Terkait Penggunaan libxml pada Parser HTML Berkinerja Tinggi Nokolexbor

BigGo Editorial Team
Kekhawatiran Keamanan Muncul Terkait Penggunaan libxml pada Parser HTML Berkinerja Tinggi Nokolexbor

Peluncuran terbaru dari Nokolexbor, sebuah parser HTML5 berkinerja tinggi untuk Ruby yang menjanjikan peningkatan kecepatan signifikan dibandingkan Nokogiri, telah memicu diskusi penting tentang keseimbangan antara kinerja dan keamanan dalam alat pengembangan web modern.

Pertimbangan Keamanan vs Kinerja

Meskipun Nokolexbor memiliki metrik kinerja yang mengesankan, menunjukkan pemrosesan selektor CSS hingga 997 kali lebih cepat dibandingkan Nokogiri, komunitas pengembang telah mengangkat kekhawatiran signifikan tentang praktik pemeliharaan keamanannya. Masalah utama berpusat pada penggunaan libxml 2.11 dalam-pohon oleh Nokolexbor untuk dukungan XPath, yang dirilis pada April 2023. Pendekatan pengelolaan dependensi ini telah mendapat pengawasan dari pengembang yang sadar keamanan, terutama mengingat riwayat kerentanan keamanan yang sering terjadi pada libxml.

Hampir setiap rilis kedua libxml disertai dengan CVE, jadi saya penasaran apakah ada rencana untuk memperbarui versi libxml, mengingat tidak menggunakan libxml sistem (sama seperti nokogiri).

Perbandingan Kinerja vs Nokogiri:

  • Penguraian HTML: 5,22x lebih cepat (487,6 vs 93,5 iterasi/detik)
  • Pemilih CSS: Hingga 997,87x lebih cepat (50798,8 vs 50,9 iterasi/detik)
  • Operasi Campuran: 142,11x lebih cepat (7437,6 vs 52,3 iterasi/detik)

Kekhawatiran Aktivitas Pengembangan

Status pemeliharaan proyek juga menjadi bahan diskusi, dengan anggota komunitas mencatat kurangnya pembaruan selama lebih dari tujuh bulan. Meskipun beberapa pengembang berpendapat bahwa persyaratan parsing HTML5 tidak berubah secara signifikan selama periode ini, implikasi keamanan dari mempertahankan dependensi yang ketinggalan zaman tetap menjadi masalah mendesak. Hal ini khususnya relevan bila dibandingkan dengan pendekatan Nokogiri, yang mempertahankan jadwal pembaruan keamanan yang ketat untuk implementasi libxml-nya.

Platform yang Didukung:

  • Linux: x86_64 (glibc ≥ 2.17)
  • macOS: x86_64 dan arm64
  • Windows: ucr64, mingw32 dan mingw64

Solusi Alternatif

Diskusi komunitas telah menyoroti beberapa alternatif dalam ekosistem, termasuk solusi berbasis Rust seperti Selma, yang menggunakan parser lol_html dari Cloudflare, dan implementasi Python seperti selectolax yang juga memanfaatkan kemampuan Lexbor. Alternatif-alternatif ini menunjukkan ekosistem solusi parsing HTML berkinerja tinggi yang berkembang di berbagai bahasa pemrograman, masing-masing dengan pendekatan tersendiri dalam menyeimbangkan pertimbangan kinerja dan keamanan.

Situasi ini menyoroti tantangan yang lebih luas dalam ekosistem pengembangan perangkat lunak: kebutuhan untuk menyeimbangkan peningkatan kinerja mutakhir dengan praktik keamanan yang berkelanjutan. Seiring evolusi alat pengembangan, respons komunitas terhadap Nokolexbor menjadi pengingat bahwa kecepatan saja tidak cukup untuk memastikan adopsi luas dalam lingkungan produksi.

Sumber Kutipan: Nokolexbor: Parser HTML5 berkinerja tinggi untuk Ruby berbasis Lexbor