npq
v3.5.3
安全*通過審核NPM/紗線安裝軟件包作為安裝過程的一部分
關於NPQ的媒體報導:
安裝了NPQ後,您可以安全地*安裝軟件包:
npq install express
npq
將通過採用句法啟發式法並查詢CVE數據庫來執行以下步驟以檢查該軟件包是否安全:
如果提示NPQ繼續進行安裝,則只需將實際軟件包安裝作業移交給軟件包管理器(默認情況下)。
安全* - 沒有保證的安全;仍然存在一個沒有公開披露安全漏洞並通過NPQ的支票的惡意或脆弱的軟件包。
npm install -g npq
注意:我們建議使用npm
而不是yarn
安裝。這樣, npq
可以自動為您安裝Shell別名。
npq install express
由於npq
是確保要安裝的NPM軟件包安全的預步驟,因此您可以將其安全地嵌入日常npm
使用中,因此無需記住明確運行npq
。
alias npm= ' npq-hero '
如果您使用的是yarn
,或者通常要明確告訴NPQ哪個要使用的軟件包管理器,則可以指定一個環境變量: NPQ_PKG_MGR=yarn
示例:用紗線作為包裝管理器創建一個別名:
alias yarn= " NPQ_PKG_MGR=yarn npq-hero "
注意:默認情況下, npq
將在完成相應軟件包的適當履歷後,將所有命令及其參數卸載給npm
軟件包管理器。
馬歇爾名字 | 描述 | 筆記 |
---|---|---|
年齡 | 如果NPM的年齡少於22天,將顯示包裝的警告 | 檢查包裝創建日期,而不是特定版本 |
作者 | 如果在沒有作者字段的情況下找到包裹,將顯示警告 | 檢查作者的最新版本 |
下載 | 如果包裹的下載計數在上個月少於20 | |
讀書我 | 如果包裹沒有讀數,或者已將其作為安全佔位符套件被NPM工作人員檢測到警告 | |
倉庫 | 如果在沒有有效且可行的存儲庫URL的情況下找到包裹,將顯示警告 | 檢查存儲庫URL的最新版本 |
腳本 | 如果包裝具有預/後安裝腳本,則會顯示警告,這可能是惡意的 | |
Snyk | 如果在Snyk的數據庫中發現了漏洞的軟件包,將顯示警告 | 對於Snyk,您需要使用有效的API令牌安裝snyk NPM軟件包,或者使Snyk_token環境變量中的令牌可用,並且NPQ將使用它 |
執照 | 如果在沒有許可字段的情況下找到包裹,將顯示警告 | 檢查最新版本的許可證 |
過期的域 | 如果發現包裹的一位維護者,將顯示一個包含的電子郵件地址,其中包括已過期的域名,將顯示警告 | 檢查具有已過期域的維護者的依賴版本 |
簽名 | 將在註冊表的pakument上顯示包裝的簽名與NPMJS.COM註冊表上發布的鍵 | |
出處 | 將驗證包裹對已發佈軟件包的出處元數據的證明 |
要完全禁用馬歇爾,請使用Marshall的短名稱設置環境變量。
例如,禁用Snyk脆弱性Marshall:
MARSHALL_DISABLE_SNYK=1 npq install express
npq install express --dry-run
從Liran Tal學習Node.js安全的編碼技術和最佳實踐
npm install
將安裝模塊,即使它具有漏洞; NPQ將顯示檢測到的問題,並提示用戶確認是否要進行安裝。pre-install
腳本,該腳本可能對您的系統有可能有害並提示您是否安裝它。儘管npm audit
不會執行任何此類檢查,並且僅向已知安全問題諮詢漏洞數據庫。npm audit
功能更接近SNYK的功能,而不是NPQ所做的。請諮詢有關為該項目做出貢獻的指南的貢獻
liran tal [email protected]