修复 JS 项目中的包安全漏洞的步骤

当您安装的软件包或其依赖项中检测到安全漏洞时,github 会定期向您发送警报。我曾经尝试让 dependentabot 为我修复它们。然而,有一半的时间我无法合并为我生成的 pr。结果,违规行为就被赤裸裸地处理了,这可不好。就我而言,我使用 pnpm,我想它与 npm 相同。

我今天看到了 Niraj Chauhan 的这篇文章,它让我了解了如何使用终端来解决这些问题。

步骤:

您从 Github 收到 dependentabot 警报:

修复 JS 项目中的包安全漏洞的步骤

我知道,上面屏幕截图中的包名称与文章的其余部分不匹配。但这是关于步骤的,你明白了。导航到计算机中的项目并运行 pnpmaudit。您应该会看到有关漏洞的详细信息:

修复 JS 项目中的包安全漏洞的步骤

在路径部分,您应该看到导致此问题的原因。就我而言,它似乎是“嵌套依赖项”(依赖项的依赖项)。

您可以运行 pnpm Why NAME_OF_THE_EXTENSION 来确认上述内容。就我而言,当我在第一个漏洞上运行它时,我得到了这个:pnpm Why netmask

修复 JS 项目中的包安全漏洞的步骤

您可以尝试运行 pnpmauditfix,但它对我不起作用。

打开 package.json 并更新导致此问题的包版本 – 在我的例子中为 mailgun-js。您可以运行 pnpm view NAME_OF_THE_PACKAGE versions 查看所有版本,或运行 pnpm info NAME_PACKAGE version 了解最新的稳定版本。

如果不同,请使用您需要的版本编辑 package.json 文件,然后再次运行 pnpm i。之后,再次运行 pnpmaudit 以确认漏洞已消失。如果它仍然存在,请重新开始或继续阅读。

就我而言,我安装的是最新的稳定版本,所以我需要采取另一种方法。

我们可以强制 pnpm 安装特定版本的嵌套依赖项。 pnpm 文档在这里,您可以在 package.json 文件中这样做:

修复 JS 项目中的包安全漏洞的步骤

我尝试覆盖的版本出现错误,因此我在 package.json 文件中写入了最新版本:

修复 JS 项目中的包安全漏洞的步骤

修复 JS 项目中的包安全漏洞的步骤

运行 pnpm i 和 happy days,该软件包的漏洞不再存在。

编辑 25/10:根据此 Stackoverflow 线程,Github dependentabot 和 pnpm 审核源都来自同一数据库,因此您不会错过漏洞,而是以这种方式修复问题,而不是使用 dependentabot 工作流程。还有这篇博文。

以上就是修复 JS 项目中的包安全漏洞的步骤的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1494292.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月19日 16:26:17
下一篇 2025年12月19日 16:26:22

相关推荐

  • 反应点击编辑

    我发现许多react组件过于复杂,违背了“单一职责原则”。 为了练习npm包发布、ci/cd配置以及使用命名空间@nobrainers发布简单组件,我创建并发布了一个名为“react-click-edit”的新组件。 这是一个简洁的React组件,允许用户点击并编辑显示的值。 点击编辑按钮后,会弹出…

    2025年12月19日
    000
  • 掌握 React:完整的 Web 开发指南

    在快节奏的 Web 开发领域,构建高效、强大的应用至关重要。Filestack 隆重推出 Filestack React JS 完整教程,一本全面指南,助您全面掌握 React JS 开发。 本教程通过实际案例、清晰步骤和实用技巧,帮助各水平开发者轻松构建现代动态 Web 应用。 教程亮点 图像优化…

    2025年12月19日
    000
  • 浦那 IT 培训学院:Technolearn

    想在瞬息万变的IT行业提升技能或转型发展?浦那顶尖IT培训机构Technolearn将是您的理想之选!我们提供全面的课程,满足学生和专业人士的各种需求。 凭借卓越的教学成果,我们帮助学员掌握在竞争激烈的就业市场中脱颖而出的技能和知识。您的IT成功之路,从浦那最好的IT学院Technolearn开启!…

    2025年12月19日
    000
  • 为什么 Zustand 在 React 状态管理之战中取得了胜利?

    Zustand在GitHub上斩获4.9万星,令人瞩目。 近年来,React状态管理领域风云变幻。曾经的霸主Redux逐渐式微,不再像以往那样炙手可热。 Redux的兴衰 Redux的成功在于恰逢其时,但其设计或许并非完美。作为Flux阵营的幸存者,它一度成为React的默认状态管理方案,尤其在基于…

    2025年12月19日
    000
  • 使用 EmailJS 的联系表

    本教程演示如何使用 React、Tailwind CSS 和 EmailJS 构建一个现代化的、响应式的联系表单,实现实时邮件发送功能。 完整代码及配置步骤,助您轻松创建专业的联系页面。 测试页面:https://www.php.cn/link/948ba1dc8cc4cc26e5d9d4f3586…

    2025年12月19日
    000
  • 我们必须了解 JavaScript 数组方法

    1. 筛选 (filter) filter() 方法创建一个新数组,其中只包含满足指定条件的元素。若条件为真,则元素保留;否则,元素被过滤掉。 工作机制: 该方法遍历数组中的每个元素。若回调函数返回 true,则元素被添加到新数组。若返回 false,则元素被忽略。 示例: 立即学习“Java免费学…

    2025年12月19日
    000
  • 如何在几分钟内将 Firebase 与 React Native Expo 应用程序集成

    Firebase 作为强大的后端即服务平台,提供用户身份验证、实时数据库和分析等功能。如果您使用 React Native Expo 进行开发,集成 Firebase 是快速便捷地添加这些功能的理想途径。 本文将引导您在短短 5 分钟内完成 Firebase 与基于 Expo 的 React Nat…

    2025年12月19日
    000
  • JavaScript 中的 DOM

    文档对象模型 (DOM) DOM API 是网页文档的编程接口,它以编程方式呈现页面,允许修改文档结构、样式和内容。DOM 将文档表示为对象树,每个对象代表页面的一部分。 JavaScript 中的 DOM 操作 以下是一些在 JavaScript 中进行 DOM 操作的基础知识: querySel…

    2025年12月19日
    000
  • 掌握 JWT(JSON Web 令牌):深入探讨

    json web token (jwt)详解:跨域认证的流行解决方案 JWT是当前最广泛使用的跨域身份验证解决方案。本文将深入探讨其工作原理和使用方法。 一、跨域认证的挑战 互联网应用离不开用户身份验证。传统的流程通常如下: 用户提交用户名和密码给服务器。服务器验证通过后,会在当前会话中存储用户信息…

    2025年12月19日 好文分享
    000
  • 如何在 Ubuntu 和 Linux 发行版上安装 Nodejs:完整指南

    在 Ubuntu(或任何 Linux 发行版)上安装 Node.js 是 JavaScript 开发者的关键步骤。虽然可以直接从官网下载,但使用版本管理器能更好地控制开发环境。本指南将介绍如何使用两种流行的版本管理器——fnm 和 nvm——在 Ubuntu 上安装 Node.js。 Node.js…

    2025年12月19日
    000
  • Webship-js:当我等待时

    Webship-js 的“等待”步骤对于模拟真实用户行为,确保自动化测试的可靠性至关重要。此步骤允许您在测试流程中添加暂停,等待页面元素完全加载或操作完成,从而避免因页面加载不完整或元素未响应导致测试失败。 在处理动态内容或 AJAX 请求时,该步骤尤其有用。 该步骤允许您指定等待时长:精确的秒数/…

    2025年12月19日
    000
  • 函数组件等于函数式编程吗?

    React 开发者对两种类型的组件类型应该很熟悉:类组件和函数组件。 “类”和“函数”这两个词自然会让人联想到面向对象编程(OOP)和函数式编程(FP)。 类组件与OOP相关吗?函数组件与FP相关吗?如果类组件与OOP相关,那么OOP原则(继承、封装、多态等)就能指导基于类的组件开发。同理,FP原则…

    2025年12月19日
    000
  • 使用 Readabilityjs 清理 HTML 内容以进行检索增强生成

    网页抓取是增强型生成式检索 (rag) 应用程序获取内容的一种有效途径,但解析网页内容却可能充满挑战。mozilla 的开源库 readability.js 提供了一种便捷的解决方案,用于提取网页的核心信息。本文将探讨如何将其集成到 rag 应用程序的数据获取流程中。 从网页中检索非结构化数据 网页…

    2025年12月19日
    000
  • 这个新的 JavaScript 运算符绝对改变了游戏规则

    javascript 多年来已经发生了显着的发展,引入了新的功能和语法,使该语言更加强大和更具表现力。该语言最令人兴奋的新增功能之一是空合并运算符 (??)。该运算符绝对是游戏规则的改变者,提供了一种简洁直观的方法来处理 null 和未定义的值。在本文中,我们将探讨 nullish 合并运算符、其优…

    好文分享 2025年12月19日
    000
  • 如何在 Raspberry Pi 上设置 Nodejs Web 服务器

    几年前,我入手了一台raspberry pi model b,并决定在其上搭建一个网络服务器。 虽然看起来很简单,但实际上Raspberry Pi本质上是一台微型电脑,需要安装操作系统才能运行,这与Arduino等其他开发板不同,后者无需操作系统即可运行程序。 以下是如何在Raspberry Pi上…

    2025年12月19日 好文分享
    000
  • 提高编码技能的 JavaScript 项目想法

    概述 JavaScript 作为当今最流行和应用最广的编程语言之一,无论你的编程水平如何,实践项目都是提升技能和展示成果的最佳途径。本文将提供一系列不同难度的 JavaScript 项目创意,供你选择。 初学者项目 以下项目适合 JavaScript 入门学习者,主要涵盖 DOM 操作、事件处理和基…

    2025年12月19日
    000
  • 承诺一切()

    深入理解JavaScript中的Promise.all()方法 Promise.all()是JavaScript中一个强大的工具,用于同时处理多个异步操作。它接收一个Promise可迭代对象(通常是数组),并返回一个新的Promise。只有当所有输入的Promise都成功解析时,这个新的Promis…

    2025年12月19日
    000
  • 为什么印度企业在 5 年内投资电子商务应用程序开发?

    2025年的数字经济蓬勃发展,企业日益意识到电商App开发在提升客户互动方面的巨大潜力。消费者青睐便捷、快速和个性化的购物体验,移动电商App开发已成为企业追求可持续增长的关键策略。从大型跨国公司到小型企业,都在积极寻求专业的电商App开发公司,以在竞争激烈的市场中保持领先优势。但究竟是什么驱动了如…

    2025年12月19日
    000
  • 理解Vite的文件结构:为什么indexhtml属于根

    Vite项目中index.html文件的位置是一个常见问题。不同于Webpack等传统构建工具,Vite要求index.html必须位于项目根目录,而非公共目录。 如果将index.html放置在非根目录下,启动开发服务器后,您可能会遇到HTTP 404错误,提示服务器找不到资源: 此 localh…

    2025年12月19日
    000
  • 构建您的第一个 WebAssembly 项目

    嘿,马卡尔斯, 这篇文章是 webassembly 多部分系列的一部分。在这里查看该系列的其他部分 您是否听说过 webassembly 并认为“这听起来很酷,但对我来说可能太复杂了”? 好吧,今天您将从头开始构建一个简单的 webassembly 项目。让我设定正确的期望。我们将构建一个非常简单的…

    2025年12月19日
    000

发表回复

登录后才能评论
关注微信