新 Python 工具可檢測(cè) NPM 包是否存在“Manifest 混淆”問(wèn)題
7 月 5 日消息,GitHub 和 NPM 的前工程經(jīng)理 Darcy Clarke 上周警告稱,NPM 包存在“Manifest 混淆”問(wèn)題。系統(tǒng)管理員 Felix Pankratz 近日發(fā)布了一款基于 Python 的工具,可以幫助軟件開發(fā)人員檢查 NPM 包是否一致。
NPM 是 JavaScript 編程語(yǔ)言的程序包管理器,也是廣泛使用的 Noje.js 環(huán)境的默認(rèn)配置。
該程序包管理器有助于項(xiàng)目管理員自動(dòng)化安裝、升級(jí)和配置托管在 npmjs.com 的 npm 注冊(cè)表數(shù)據(jù)庫(kù)上的軟件包。
當(dāng)程序包在 npm 注冊(cè)表上展示的 maniefest 信息,與安裝該程序包時(shí)使用的發(fā)布的 npm 包 tarball 中的實(shí)際的 “package.json” 文件不一致時(shí),就會(huì)發(fā)生 Manifest 混淆。
IT之家在此附上該工具的 GitHub 頁(yè)面,有需要的用戶可以前往下載。
用戶需要該工具要求安裝相關(guān)組件:
pip install -r requirements.txt
如果只是想要檢查某個(gè)包,只需要在腳本末尾添加包的名稱,例如:
$ ./npm-manifest-check.py darcyclarke-manifest-pkg
反饋結(jié)果將顯示 Manifest 和實(shí)際 package.json 文件之間的版本、依賴項(xiàng)、腳本和包名稱中的任何不匹配信息。
如果想要檢測(cè)多個(gè)包,可以先將這些包添加到“packages.list”文件中,然后使用“check_packages.sh”包裝器腳本進(jìn)行檢查。