Repozitariydagi barcha paketlarga bog'liq bo'lgan NPM paketini yaratish bilan tajriba o'tkazing

JavaScript paketlarini ishlab chiquvchilardan biri NPM omborida barcha mavjud paketlarni bog'liqliklar bilan qamrab oladigan "hamma narsa" paketini yaratish va joylashtirish bilan tajriba o'tkazdi. Ushbu xususiyatni amalga oshirish uchun "hamma narsa" to'plami beshta "@everything-registry/chunk-N" paketlari bilan to'g'ridan-to'g'ri bog'liqliklarga ega, ular o'z navbatida 3000 dan ortiq "sub-chunk-N" paketlarga bog'liq bo'lib, ularning har biri bir-biriga bog'langan. Repozitariyda 800 ta mavjud paketlar.

NPMda "hamma narsani" joylashtirish ikkita qiziqarli effektga ega edi. Birinchidan, "hamma narsa" to'plami DoS hujumlarini amalga oshirish uchun o'ziga xos vositaga aylandi, chunki uni o'rnatishga urinish NPM-da joylashtirilgan millionlab paketlarni yuklab olishga va mavjud disk maydonini to'ldirishga yoki qurish jarayonlarini to'xtatishga olib keladi. NPM statistik ma'lumotlariga ko'ra, paket taxminan 250 marta yuklab olingan, biroq ishlab chiquvchining akkaunti sabotaj qilish uchun buzib tashlanganidan keyin uni boshqa paketga qaramlik sifatida qo'shishdan hech kim bezovta qilmaydi. Bundan tashqari, NPM tomonidan joylashtirilgan yangi paketlarni kuzatuvchi va tekshiradigan ba'zi xizmatlar va vositalar beixtiyor hujumga duchor bo'ldi.

Ikkinchidan, "hamma narsa" to'plamini nashr qilish NPM-dagi bog'liqliklar ro'yxatiga kiritilgan har qanday paketlarni olib tashlash imkoniyatini samarali ravishda blokladi. NPM-dan to'plam muallif tomonidan faqat boshqa paketlarning bog'liqliklarida ishlatilmagan bo'lsa, olib tashlanishi mumkin, ammo "hamma narsa" nashr etilgandan so'ng, bog'liqliklar ombordagi barcha paketlarni qamrab olgan. Shunisi e'tiborga loyiqki, "hamma narsa" to'plamining o'zi ham bloklangan, chunki 9 yil oldin "hamma narsa" test to'plami omborga joylashtirilgan bo'lib, u "hamma narsa" qatorini bog'liqliklar ro'yxatiga kiritgan. Shunday qilib, nashr etilgandan so'ng, "hamma narsa" to'plami boshqa paketga bog'liq bo'lib qoldi.

Manba: opennet.ru

a Izoh qo'shish