Latihan 1 dari materi Dependency Vulnerabilities di Security — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi fungsi checkVulnerableVersion(version, vulnerableRange) di kode awal. Fungsi ini menjawab: apakah versi package ini masuk range yang rentan?
version adalah string semver sederhana "MAJOR.MINOR.PATCH", misalnya "1.2.3". vulnerableRange adalah object { min, max }, misalnya { min: "1.0.0", max: "1.5.0" }.
Pecah tiap versi dengan split(".") dan ubah tiap bagian jadi angka, lalu bandingkan major, kemudian minor, kemudian patch. Jangan bandingkan sebagai teks.
Kembalikan true kalau min <= version <= max (kedua ujung ikut rentan), dan false kalau versinya di luar range.
Yang dicek, semuanya dengan range { min: "1.0.0", max: "1.5.0" }:
"1.2.3" mengembalikan true
"2.0.0" mengembalikan false
"1.0.0" mengembalikan true (tepat di min)
"1.5.0" mengembalikan true (tepat di max)
"0.9.9" mengembalikan false (di bawah min)
Tiga console.log di kode awal boleh dibiarkan.
Hint
Versi semver punya tiga angka: major, minor, patch. Rentan artinya versinya ada di antara min dan max, termasuk min dan max itu sendiri.
Ubah tiap versi jadi satu angka yang bisa dibandingkan: v.split(".").map(Number) lalu major * 1000000 + minor * 1000 + patch. Setelah itu cek ver >= min && ver <= max.
const toNum = (v) => { const [a, b, c] = v.split(".").map(Number); return a * 1000000 + b * 1000 + c; }; const ver = toNum(version); return ver >= toNum(vulnerableRange.min) && ver <= toNum(vulnerableRange.max);
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...