Eksperimentu kun kreado de NPM-pakaĵo, kiu dependas de ĉiuj pakaĵoj en la deponejo

Unu el la programistoj de JavaScript-pakaĵoj eksperimentis krei kaj meti en la NPM-deponejon la "ĉio" pakaĵon, kiu kovras ĉiujn ekzistantajn pakaĵojn en la deponejo per dependecoj. Por efektivigi ĉi tiun funkcion, la "ĉio" pakaĵo havas rektajn dependecojn kun kvin "@everything-registry/chunk-N" pakaĵoj, kiuj siavice havas dependecojn de pli ol 3000 "sub-peco-N" pakaĵoj, ĉiu el kiuj ligas al. 800 ekzistantaj pakaĵoj en la deponejo.

Meti "ĉion" en NPM havis du interesajn efikojn. Unue, la "ĉio" pakaĵo fariĝis speco de ilo por fari DoS-atakojn, ĉar provo instali ĝin kondukas al elŝuto de milionoj da pakaĵoj gastigitaj en NPM kaj elĉerpi la disponeblan diskspacon aŭ ĉesigi la ekzekuton de konstruprocezoj. Laŭ statistiko de NPM, la pakaĵo estis elŝutita ĉirkaŭ 250 fojojn, sed neniu ĝenas aldoni ĝin kiel dependecon al alia pako post kiam la konto de la programisto estis hakita por fari sabotadon. Krome, iuj servoj kaj iloj, kiuj kontrolas kaj kontrolas novajn pakaĵojn gastigitaj de NPM, estis senintence elmontritaj al atako.

Due, publikigi la "ĉio" pakaĵon efike blokis la kapablon forigi iujn ajn pakaĵojn en NPM kiuj finiĝis en ĝia listo de dependecoj. Pako de NPM povas esti forigita de la aŭtoro nur se ĝi ne estas jam uzata en la dependecoj de aliaj pakoj, sed post la publikigo de "ĉio" la dependecoj montriĝis kovri ĉiujn pakaĵojn en la deponejo. Estas rimarkinde, ke ankaŭ la forigo de la pako "ĉio" mem estis blokita, ĉar antaŭ 9 jaroj testa pako "ĉio-alia" estis afiŝita en la deponejo, kiu inkludis la ĉenon "ĉio" en la listo de dependecoj. Tiel, post publikigo, la "ĉio" pakaĵo finiĝis dependa de alia pako.

fonto: opennet.ru

Aldoni komenton