前言
在前端开发中,我们常常需要使用到第三方包。为了保证我们的项目安全,我们需要对这些第三方包进行完整性校验。而 npm 包的 fingerprinting 技术可以帮助我们实现这一点。
什么是 fingerprinting
npm 包的 fingerprinting 指的是通过对包内容进行哈希计算,生成一个唯一的标识符,用于验证包的完整性和安全性。这种技术可以在下载时自动完成验证,避免恶意软件和误用包的风险。
如何使用 fingerprinting
在使用 fingerprinting 之前,我们需要确保我们的 npm 版本在 5.0 以上。接下来,我们需要在 package.json 中配置 package-lock.json,并在执行 npm install 时自动生成 package-lock.json。
在 package-lock.json 中,每个依赖项都有一个“integrity”属性,该属性是通过哈希算法生成的完整性校验值。在安装过程中,npm 会比对包的 integrity 属性和 package-lock.json 中的值,以确认所安装的包是否完整且安全。
下面是一个使用 fingerprinting 的 package.json 和 package-lock.json 示例:
-- -------------------- ---- ------- - ------- ------------- ---------- -------- --------------- - --------- ---------- -- ------------------ - ------- -------- - -
-- -------------------- ---- ------- - ------- ------------- ------------------ -- ----------- ----- --------------- - ------- - ---------- -------- ----------- --------------------------------------------------- ------------ ------------------------------------ ----------- - -------- --------- ------------- --------- ------------ --------- ------------ --------- ----------- --------- --------------- --------- ---------------- --------- --------- --------- ---------- --------- ---------- --------- ----------- -------- - -- --------- - ---------- ---------- ----------- --------------------------------------------------------- ------------ ------------------------------------------------------------------------------------------------- - - -
在上面的示例中,我们可以看到 lodash 和 gulp 的 integrity 值。npm 在下载并安装这些包时会验证这些值,以确保包的完整性和安全性。
结语
使用 npm 包的 fingerprinting 技术可以保证我们代码的安全性,并避免出现恶意软件的风险。我们强烈建议大家在开发中积极使用这一技术。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66684