Հարձակում NPM-ի վրա, որը թույլ է տալիս որոշել փաթեթների առկայությունը մասնավոր պահեստներում

NPM-ում հայտնաբերվել է թերություն, որը թույլ է տալիս հայտնաբերել փաթեթների առկայությունը փակ պահեստներում: Խնդիրն առաջանում է տարբեր արձագանքման ժամանակների պատճառով, երբ պահանջվում է գոյություն ունեցող և գոյություն չունեցող փաթեթ երրորդ կողմից, ով մուտք չունի պահոց: Եթե ​​մասնավոր պահոցներում որևէ փաթեթի հասանելիություն չկա, registry.npmjs.org սերվերը վերադարձնում է «404» կոդով սխալ, բայց եթե առկա է պահանջվող անունով փաթեթ, սխալը թողարկվում է նկատելի ուշացումով: Հարձակվողը կարող է օգտագործել այս հատկությունը փաթեթի առկայությունը որոշելու համար՝ փաթեթների անունները փնտրելով բառարանների միջոցով:

Փաթեթների անունների որոշումը մասնավոր պահոցներում կարող է անհրաժեշտ լինել կախվածության խառնման հարձակում իրականացնելու համար, որը շահարկում է կախվածության անունների հատումը հանրային և ներքին պահոցներում: Իմանալով, թե որ ներքին NPM փաթեթներն են առկա կորպորատիվ պահոցներում, հարձակվողը կարող է նույն անուններով և ավելի նոր տարբերակների համարներով փաթեթներ տեղադրել հանրային NPM պահոցում: Եթե ​​հավաքման ժամանակ ներքին գրադարանները բացահայտորեն կապված չեն իրենց պահոցին կարգավորումներում, npm փաթեթի կառավարիչը հանրային պահոցը կհամարի ավելի առաջնահերթություն և կներբեռնի հարձակվողի պատրաստած փաթեթը:

GitHub-ը խնդրի մասին ծանուցվել է մարտին, սակայն հրաժարվել է պաշտպանություն ավելացնել հարձակումից՝ վկայակոչելով ճարտարապետական ​​սահմանափակումները: Մասնավոր պահոցներ օգտագործող ընկերություններին խորհուրդ է տրվում պարբերաբար ստուգել հանրային պահեստում համընկնող անունների տեսքը կամ իրենց անունից ստեղծել կոճղեր անուններով, որոնք կրկնում են մասնավոր պահոցների փաթեթների անունները, որպեսզի հարձակվողները չկարողանան իրենց փաթեթները տեղադրել համընկնող անուններով:

Source: opennet.ru

Добавить комментарий