lirantal/awesome-nodejs-security

GitHub: lirantal/awesome-nodejs-security

精心整理的 Node.js 安全资源合集,涵盖安全工具、供应链事件记录和教育材料,帮助开发者和安全从业者快速定位所需的安全防护方案。

Stars: 2988 | Forks: 277


精心整理的 Awesome Node.js 安全资源列表。 ![#](https://badgen.net/badge/tools/30+/blue) ![#](https://badgen.net/badge/incidents/15+/red) ![#](https://badgen.net/badge/educational/8+/green)

Node.js Security

![Screenshot 2024-09-12 at 20 14 27](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/731bad958b232230.png)

Liran Tal 处学习 Node.js 安全编码技术和最佳实践。


# 目录 - [工具](#tools) - [Web 框架加固](#web-framework-hardening) - [静态代码分析](#static-code-analysis) - [动态应用程序安全测试](#dynamic-application-security-testing) - [输入/输出验证](#input-validation--output-encoding) - [安全组合](#secure-composition) - [CSRF](#csrf) - [漏洞与安全公告](#vulnerabilities-and-security-advisories) - [安全加固](#security-hardening) - [数据源](#data-sources) - [安全事件](#security-incidents) - [教育](#educational) - [黑客演练场](#hacking-playground) - [文章](#articles) - [研究论文](#research-papers) - [书籍](#books) - [路线图](#roadmaps) - [公司](#companies) # 工具 ## Web 框架加固 - [Helmet](https://www.npmjs.com/package/helmet) - Helmet 通过设置各种 HTTP 头来帮助你保护 Express 应用。 - [koa-helmet](https://www.npmjs.com/package/koa-helmet) - koa-helmet 通过设置各种 HTTP 头来帮助你保护 Koa 应用。 - [blankie](https://github.com/nlf/blankie) - [hapi](https://github.com/hapijs/hapi) 的 CSP 插件。 - [fastify-helmet](https://github.com/fastify/fastify-helmet) - fastify-helmet 通过设置重要的安全头来帮助你保护 [fastify](https://www.fastify.io/) 应用。 - [nis2-express-middleware](https://github.com/nis2shield/express-nis2-middleware) - 用于遵守 EU NIS2 合规性的综合 Express.js 中间件(日志记录、主动防御和安全默认值)。 - [nuxt-security](https://github.com/Baroshem/nuxt-security) - 基于 OWASP Top 10 和 Helmet 的 Nuxt 🛡 安全模块。 - [reporting-api](https://github.com/wille/reporting-api) - 设置并收集 CSP、Reporting API v0 和 v1 报告,对其进行可靠解析以供用户处理。 ## GitHub Actions 和 CI/CD 安全 - [New dependencies advisor](https://github.com/marketplace/actions/new-dependencies-advisor) - GitHub Action,可为 Pull Request 添加评论,提供有关新增 npm 依赖项的包健康信息。 - [OpenSSF Scorecard Monitor](https://github.com/marketplace/actions/openssf-scorecard-monitor) - 通过自动生成的 Markdown 和 JSON 报告以及可选的 GitHub Issue 警报,简化组织内的 OpenSSF Scorecard 跟踪。 ## 静态代码分析 - [eslint-plugin-security](https://www.npmjs.com/package/eslint-plugin-security) - 用于 Node 安全的 ESLint 规则。该项目有助于识别潜在的安全热点,但会产生许多需要人工筛选的误报。 - [tslint-plugin-security](https://www.npmjs.com/package/tslint-config-security) - 用于 Node 安全的 TSLint 规则。该项目有助于识别潜在的安全热点,但会产生许多需要人工筛选的误报。 - [safe-regex](https://www.npmjs.com/package/safe-regex) - 通过将星高度限制为 1 来检测潜在的灾难性指数时间正则表达式。 - [vuln-regex-detector](https://www.npmjs.com/package/vuln-regex-detector) - 此模块允许你检查正则表达式是否存在漏洞。在 JavaScript 中,正则表达式 可能是“脆弱的”:容易受到灾难性回溯的影响。如果你的应用程序在客户端使用,这可能是一个性能问题。在服务端,这可能会使你暴露于正则表达式拒绝服务 攻击之下。 - [regolith](https://github.com/JakeRoggenbuck/regolith) - 为防止 ReDoS 攻击而使用 TypeScript 编写的正则表达式库。我为 Rust 正则表达式库制作了 TypeScript 绑定,以防止正则表达式拒绝服务攻击。 - [git-secrets](https://github.com/awslabs/git-secrets) - 防止你将秘密信息和凭据提交到 Git 仓库中。 - [DevSkim](https://github.com/Microsoft/DevSkim) - DevSkim 是一组 IDE 插件和规则,可提供安全“linting”功能。还支持 CLI,因此可以集成到 CI/CD 管道中。 - [ban-sensitive-files](https://github.com/bahmutov/ban-sensitive-files) - 根据文件名规则库检查要提交的文件名,以防止在 Git 中存储敏感文件。检查某些文件是否包含敏感内容(例如 .npmrc 文件中的 authToken)。 - [NodeJSScan](https://github.com/ajinabraham/nodejsscan) - 针对 Node.js 应用程序的静态安全代码扫描器。包含简洁的用户界面,可以指出问题所在以及如何修复。 - [NodeSecure CLI](https://github.com/NodeSecure/cli) - Node.js CLI,允许你深度分析给定 npm 包或目录的依赖树。 - [Trust But Verify](https://github.com/verifynpm/tbv) - TBV 将 npm 包与其源仓库进行比较,以确保生成的产物一致。 - [lockfile-lint](https://github.com/lirantal/lockfile-lint) - 对 lockfile 进行 lint 以提高安全性和信任策略,从而免受恶意包注入和其他不安全配置的影响。 - [pkgsign](https://github.com/RedpointGames/pkgsign) - 用于签名和验证 npm 及 yarn 包的 CLI 工具。 - [semgrep](https://semgrep.dev) - 适用于多种语言的开源、离线、易于定制的静态分析工具。此列表中的其他一些工具(如 NodeJSScan)使用 semgrep 作为其引擎。 - [npm-scan](https://github.com/spaceraccoon/npm-scan) - 用于已安装 npm 包的基于启发式的可扩展漏洞扫描工具。 - [js-x-ray](https://github.com/NodeSecure/js-x-ray) - JavaScript 和 Node.js 的 SAST 扫描器,能够检测各种众所周知的恶意代码模式(不安全导入、不安全语句、不安全正则表达式、编码文字、混淆代码)。 - [cspscanner](https://cspscanner.com/) - CSP 扫描器可帮助开发人员和安全专家轻松检查和评估站点的内容安全策略 (CSP)。 - [eslint-plugin-anti-trojan-source](https://github.com/lirantal/eslint-plugin-anti-trojan-source) - 用于检测并防止特洛伊源码攻击进入你的代码库的 ESLint 插件。 - [sdc-check](https://github.com/mbalabash/sdc-check) - 用于通知你项目依赖列表中潜在风险的小工具。 - [fix-lockfile-integrity](https://github.com/yoavain/fix-lockfile-integrity) - 一个 CLI 工具,用于将 npm lockfile 中较弱的完整性哈希 (sha1) 修复为更安全的完整性哈希 (sha512)。 - [Bearer](https://github.com/Bearer/bearer) - 一个 CLI 工具,根据 OWASP Top 10 查找并帮助你修复代码中的安全和隐私风险。 - [GuardDog](https://github.com/DataDog/guarddog) - GuardDog 是一个用于识别恶意 PyPI 和 npm 包的 CLI 工具。 ## 动态应用程序安全测试 - [PurpleTeam](https://purpleteam-labs.com) - 安全回归测试 SaaS 和 CLI,非常适合插入到你的构建管道中。你不需要自己编写任何测试。purpleteam 足够聪明,知道如何进行测试,你只需要提供一个 Job 文件,告诉 purpleteam 你想测试什么。 ## 输入验证与输出编码 - [node-esapi](https://www.npmjs.com/package/node-esapi) - node-esapi 是 ESAPI4JS (Enterprise Security API for JavaScript) 编码器的最小化移植版。 - [escape-html](https://www.npmjs.com/package/escape-html) - 转义用于 HTML 的字符串。 - [js-string-escape](https://www.npmjs.com/package/js-string-escape) - 转义任何字符串,使其成为位于双引号或单引号之间的有效 JavaScript 字符串字面量。 - [validator](https://github.com/chriso/validator.js) - 字符串验证器和清理器的 npm 库。 - [xss-filters](https://www.npmjs.com/package/xss-filters) - 仅提供足以防止 XSS 的输出过滤! - [DOMPurify](https://github.com/cure53/DOMPurify) - 一个仅基于 DOM、超快、超高容忍度的 XSS 清理器,适用于 HTML、MathML 和 SVG。 - [envalid](https://github.com/af/envalid) - Envalid 是一个小型库,用于在 Node.js 中验证和访问环境变量。 - [data-guardian](https://www.npmjs.com/package/data-guardian) - data-guardian 是一个小巧、高度可定制的库,它可以屏蔽任意实体中的敏感数据,并有助于实现 [OWASP Protect Data everywhere](https://owasp.org/www-project-proactive-controls/v3/en/c8-protect-data-everywhere)。 - [is-path-inside-secure](https://www.npmjs.com/package/is-path-inside-secure) - is-path-inside-secure 是广受欢迎的 [is-path-inside](https://www.npmjs.com/package/is-path-inside) npm 包的符号链接感知实现,旨在帮助防止路径遍历漏洞。 - [spotlighting-datamarking](https://www.npmjs.com/package/spotlighting-datamarking) - spotlighting-datamarking 提供了 [Spotlighting 论文技术](https://arxiv.org/abs/2403.14720)的轻量级实现,提供数据分隔、数据标记和可选的 Base64 编码,以帮助将数据与指令分离,并降低对间接提示注入攻击的易感性。 ## 安全组合 - [pug-plugin-trusted-types](https://www.npmjs.com/package/pug-plugin-trusted-types) - Pug 模板插件,使得从不受信任的输入安全地组合 HTML 变得容易,并提供 CSP 和 CSRF 的 [automagic](https://www.npmjs.com/package/pug-plugin-trusted-types#hdr-automagic)。 - [safesql](https://www.npmjs.com/package/safesql) - 一个标记模板 (mysql\`...\`),它理解 [Postgres](https://www.npmjs.com/package/safesql#pg) 和 [MySQL](https://www.npmjs.com/package/safesql#mysql) 的查询语法,以防止 [SQL 注入](https://www.oreilly.com/library/view/securing-node-applications/9781491982426/ch01.html#idm140399946848800)。 - [sh-template-tag](https://www.npmjs.com/package/sh-template-tag) - 一个标记模板 (sh\`...\`),它理解 Bash 语法从而防止 [shell 注入](https://www.oreilly.com/library/view/securing-node-applications/9781491982426/ch01.html#idm140399951358480)。 ## CSRF - [csurf](https://www.npmjs.com/package/csurf) - Node.js CSRF 保护中间件。 - [crumb](https://github.com/hapijs/crumb) - [hapi](https://github.com/hapijs/hapi) 的 CSRF crumb 生成与验证。 - [fastify-csrf](https://github.com/fastify/fastify-csrf) - 为 [fastify](https://www.fastify.io) 添加 CSRF 保护的插件。 ## 漏洞与安全公告 - [npq](https://github.com/lirantal/npq) - 通过在安装过程中审核包,使用 npm 或 yarn 安全地安装包。 - [snyk](https://www.npmjs.com/package/snyk) - Snyk 帮助你发现、修复和监控 Node.js npm、Ruby 和 Java 依赖项中的已知漏洞,既支持临时操作,也可作为 CI (Build) 系统的一部分。 - [node-release-lines](https://www.npmjs.com/package/node-release-lines) - Node.js 发布元数据的内省 API。提供有关发布线、其相对状态以及每个版本的详细信息。 - [auditjs](https://github.com/OSSIndex/auditjs) - 使用 [OSSIndex](https://ossindex.sonatype.org/rest) 审计 NPM package.json 文件以识别已知漏洞。 - [npm-audit](https://docs.npmjs.com/cli/audit) - 使用 npm 基于你的 package.json 运行安全审计。 - [npm-audit-resolver](https://www.npmjs.com/package/npm-audit-resolver) - 管理 npm-audit 结果,包括以清晰且可审计的方式忽略特定问题的选项。 - [gammaray](https://github.com/nearform/gammaray) - 使用 [Node.js 安全工作组漏洞数据](https://github.com/nodejs/security-wg/)基于你的 package.json 运行安全审计。 - [patch-package](https://www.npmjs.com/package/clawsearch-guard) - 允许应用作者通过创建和应用补丁,为 npm 依赖项(在 node_modules 中)创建修复程序,而无需分叉或等待合并的 PR。 - [check-my-headers](https://github.com/UlisesGascon/check-my-headers) - 快速简单的方法来检查任何 HTTP 头。 - [clawsearch-guard](https://www.npmjs.com/package/clawsearch-guard) - AI 代理技能和 npm 包的预安装安全检查。在安装前运行信任分数分析,以检测恶意模式、数据渗透和提示注入。 - [is-website-vulnerable](https://github.com/lirantal/is-website-vulnerable/) - 发现网站前端 JavaScript 库中公开已知的安全漏洞。 - [joi-security](https://github.com/Saluki/joi-security/) - 检测 Joi 验证 schema 中的安全缺陷。 - [confused](https://github.com/visma-prodsec/confused) - 用于检查多个包管理系统中依赖混淆漏洞的工具。请参阅 [Dependency Confusion: How I Hacked Into Apple, Microsoft and Dozens of Other Companies](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) 以了解创建此工具的缘由。 - [nodejs-cve-checker](https://github.com/nodejs/nodejs-cve-checker) - 一个简单的工具,用于验证 Node.js 安全版本发布后 CVE 是否已发布到 NVD。 - [zizmor](https://github.com/zizmorcore/zizmor) - 针对 GitHub Actions 和 CI/CD 工作流的静态分析。 - [releaserun](https://github.com/Releaserun/releaserun-cli) - 扫描项目依赖项,查找生命周期结束 (EOL) 的运行时、已知 CVE 300 多种产品的版本健康状况评级。 ## 安全加固 - [hijagger](https://github.com/firefart/hijagger) - 检查所有 npm 和 PyPI 包的所有维护者,以查找可以通过重新注册域名而被劫持的包。 - [snync](https://github.com/snyk-labs/snync) - 缓解依赖混淆供应链安全风险的隐忧。 - [NopPP - No Prototype Pollution](https://github.com/snyk-labs/nopp) - 保护你的应用程序免受原型污染 漏洞影响的小巧助手,无论它们是引入到你自己的代码中还是第三方代码中。 - [anti-trojan-source](https://github.com/lirantal/anti-trojan-source) - 检测利用 unicode bidi 攻击注入恶意代码的特洛伊源攻击。 - [express-limiter](https://www.npmjs.com/package/express-limiter) - 基于 redis 构建的 Express 应用程序限流中间件。 - [limits](https://www.npmjs.com/package/limits) - 简单的 express/connect 中间件,用于设置上传大小限制、设置请求超时等。 - [rate-limiter-flexible](https://www.npmjs.com/package/rate-limiter-flexible) - 按键限制的快速、灵活且友好的限流器,并在进程内存、集群、Redis、MongoDb、MySQL、PostgreSQL 中以任何规模保护免受 DDoS 和暴力攻击。包含 Express 和 Koa 示例。 - [tor-detect-middleware](https://github.com/UlisesGascon/tor-detect-middleware) 用于 express 的 Tor 检测中间件。 - [express-enforces-ssl](https://github.com/hengkiardo/express-enforces-ssl) 为基于 Express 的 Node.js 项目强制使用 SSL。不过,强烈建议在前端代理中处理 SSL 和全局 HTTP 规则。 - [bourne](https://github.com/hapijs/bourne) `JSON.parse()` 的直接替代品,提供原型中毒保护。 - [fastify-rate-limit](https://github.com/fastify/fastify-rate-limit) 用于你的路由的低开销限流器。 - [secure-json-parse](https://github.com/fastify/secure-json-parse) `JSON.parse()` 的直接替代品,提供原型中毒保护。 - [express-brute](https://github.com/AdamPflug/express-brute) 用于 express 路由的暴力破解保护中间件,它对传入请求进行速率限制,以类似斐波那契数列的顺序增加延迟。 - [allowed-scripts](https://www.npmjs.com/package/@lavamoat/allow-scripts) 执行被允许的 `npm install` 生命周期脚本。 - [ses](https://github.com/endojs/endo/tree/master/packages/ses#ses) 硬化 JavaScript 的 shim,这是一种减轻原型污染攻击并支持在单个 JavaScript 领域中安全限制多个租户的语言模式,赋予彼此硬化的 API 对象。 - [lavamoat](https://github.com/lavamoat/lavamoat) 使用 `ses` 来限制第三方依赖,并根据基于首次使用信任静态分析生成的策略限制它们对宿主能力的访问,从而缓解供应链攻击。 - [moddable](https://www.moddable.com/) 将硬化 JavaScript 实现为嵌入式系统的安全模型。 - [is-my-node-vulnerable](https://github.com/RafaelGSS/is-my-node-vulnerable) - 用于检查你的 Node.js 安装是否存在已知安全漏洞的包。 - [@lavamoat/preinstall-always-fail](https://www.npmjs.com/package/@lavamoat/preinstall-always-fail) - npm 包,用于判断在你的 npm 或 yarn 工作流中是否正在运行 preinstall 或 postinstall 脚本。 - [FCaptcha](https://github.com/WebDecoy/FCaptcha) - 具有行为分析的自托管 CAPTCHA,可检测机器人、视觉 AI 代理和无头浏览器。包含带有 SHA-256 工作证明的 Node.js 服务器。 - [are-scripts-enabled](https://www.npmjs.com/package/are-scripts-enabled) - npm 包,用于判断在你的 npm 或 yarn 工作流中是否正在运行 preinstall 或 postinstall 脚本。 - [@w-r-l/verify](https://www.npmjs.com/package/@w-r-l/verify) - 验证 WACZ Web 存档包的加密完整性。检查 Ed25519 签名和 RFC 3161 时间戳。 - [pompelmi](https://github.com/pompelmi/pompelmi) - Node.js 的本地优先文件上传扫描,可在存储前检查不受信任的文件。 - [verifyfetch](https://github.com/hamzaydia/verifyfetch) - 基于 SRI 的完整性验证和针对大文件的可恢复下载。保护浏览器免受 CDN 妥协和供应链攻击。 # 数据源 - [resource](https://nodejs.org/dist/index.json) - 包含所有 Node.js 版本、二进制构建、它们包含的依赖项(npm、zlib、openssl)及其版本的结构化列表,以及该版本是否为安全版本和是否为 LTS。 - [resource](https://github.com/nodejs/security-wg/tree/main/vuln/core) - `nodejs/secuirty-wg` GitHub 仓库维护着一个 `/vuln/core` 目录,其中包含应用于 Node.js 运行时版本的所有 CVE。 # 安全事件 ## 抗议软件的供应链安全问题 以下是已知的也跨越了其他生态系统的抗议软件列表: - [PyPI 包 atomicwrites 的作者删除了他自己的代码](https://www.bleepingcomputer.com/news/security/pypi-mandates-2fa-for-critical-projects-developer-pushes-back/) - [left-pad](https://qz.com/646467/how-one-programmer-broke-the-internet-by-deleting-a-tiny-piece-of-code/) - `event-source-polyfill`,Mariusz Nowak 及其 `es5-ext`,Evan Jacobs 及其 `styled-components`,[node-ipc](https://snyk.io/blog/peacenotwar-malicious-npm-node-ipc-package-vulnerability/),`peacenotwar`,[nestjs-pino](https://socket.dev/npm/package/nestjs-pino/files/3.1.1/postinstall.js) - 所有这些都与俄罗斯-乌克兰危机有关。 - [Open Souce Peace](https://github.com/open-source-peace/protestware-list) 组织维护着一份已识别的抗议软件事件列表。 涵盖抗议软件相关主题的文章: - [2022 年的 Techcrunch 抗议软件回顾](https://techcrunch.com/2022/07/27/protestware-code-sabotage/) - [2022 年的 Snyk 抗议软件类型](https://snyk.io/blog/protestware-open-source-types-impact/) ## npm 和 JavaScript 特定的安全事件及供应链安全问题 Node.js、JavaScript 和 npm 相关社区中发生的安全事件及相关报道集合: | 日期 | 名称 | 参考链接 | |-------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 2025 Sep 15 | Shai-Hulud npm 包恶意软件 | [Snyk](https://snyk.io/blog/embedded-malicious-code-in-tinycolor-and-ngx-bootstrap-releases-on-npm/), [ReversingLabs](https://www.reversinglabs.com/blog/shai-hulud-worm-npm?utm_source=newsletter.danielmiessler.com&utm_medium=newsletter&utm_campaign=unsupervised-learning-no-498&_bhlid=1aa82504dd754b12c5b653c6fe6b1cd46b6e9d5a), [Aikido](https://www.aikido.dev/blog/bugs-in-shai-hulud-debugging-the-desert) | 2025 Sep 8 | Qix 维护者因钓鱼攻击被盗用,导致 debug chalk 和许多其他包中出现恶意软件 | [Snyk](https://snyk.io/blog/npm-supply-chain-attack-via-open-source-maintainer-compromise/) | 2025 Aug 27 | Nx 包恶意版本妥协及 LLM 和代理的 AI 编码工具武器化 | [Snyk](https://snyk.io/blog/weaponizing-ai-coding-agents-for-malware-in-the-nx-malicious-package/) | 2025 Jul 25 | Toptal 包被感染导致 GitHub Token 被盗及系统被破坏 | [Arstechnica](https://arstechnica.com/security/2025/07/open-source-repositories-are-seeing-a-rash-of-supply-chain-attacks/) | 2025 Jul 19 | ESLint Config Prettier 维护者被入侵,传播恶意软件并感染了其他维护者 | [Snyk](https://snyk.io/blog/maintainers-of-eslint-prettier-plugin-attacked-via-npm-supply-chain-malware/), [Socket](https://socket.dev/blog/npm-phishing-campaign-leads-to-prettier-tooling-packages-compromise), [Safedep](https://safedep.io/eslint-config-prettier-major-npm-supply-chain-hack/) | 2025 Jun 25 | BeaverTail 朝鲜组织投放 35 个 npm 恶意软件包 | [Socket](https://socket.dev/blog/north-korean-contagious-interview-campaign-drops-35-new-malicious-npm-packages) | 2025 Jun 12 | npm 包 `@react-native-aria/focus` 和其他 `@react-native-area` 命名空间包被发现是恶意的 | [Aikido](https://www.aikido.dev/blog/supply-chain-attack-on-react-native-aria-ecosystem), [Bleeping Computer](https://www.bleepingcomputer.com/news/security/supply-chain-attack-hits-gluestack-npm-packages-with-960k-weekly-downloads/amp/) | 2025 May 15 | `os-info-checker-es6` npm 包利用 Google 日历中的 unicode 隐写术作为命令与控制 | [Veracode](https://www.veracode.com/resources/sophisticated-npm-attack-leveraging-unicode-steganography-and-google-calendar-c2) | 2025 May 8 | 下载量达 45,000 次的包 rand-user-agent 在供应链攻击中被妥协,用于植入恶意 RAT | [Aikido](https://www.aikido.dev/blog/catching-a-rat-remote-access-trojian-rand-user-agent-supply-chain-compromise) | 2025 May 7 | 恶意 npm 包通过后门感染 3200+ 名 Cursor 用户 | [Socket](https://socket.dev/blog/malicious-npm-packages-hijack-cursor-editor-on-macos) | 2025 May 2 | 仿冒流行的 .NET、Python 和其他包名 | [Socket](https://socket.dev/blog/npm-targeted-by-malware-campaign-mimicking-familiar-library-names) | 2025 Apr 15 | 俄罗斯黑客仿冒目标锁定 express-exp | [Safety](https://www.getsafety.com/blog-posts/russian-hackers-manipulate-npm-to-make-realistic-packages) | 2025 Apr 10 | pdf-to-office 恶意 npm 包 | [ReversingLabs](https://www.reversinglabs.com/blog/atomic-and-exodus-crypto-wallets-targeted-in-malicious-npm-campaign) | 2025 Apr 5 | 朝鲜黑客通过 11 个恶意 npm 包部署 BeaverTail 恶意软件 | [socket](https://socket.dev/blog/lazarus-expands-malicious-npm-campaign-11-new-packages-add-malware-loaders-and-bitbucket) | 2025 Mar 26 | 恶意包 `ethers-provider2` 和 `ethers-providerz` | [ReversingLabs](https://www.reversinglabs.com/blog/malicious-npm-patch-delivers-reverse-shell) | 2025 Mar 11 | 朝鲜 Lazarus 组织将目标瞄准 npm 包 is-buffer-validator, yoojae-validator, event-handle-package, array-empty-validator, react-event-dependency 和 auth-validator | [socket](https://socket.dev/blog/lazarus-strikes-npm-again-with-a-new-wave-of-malicious-packages) | 2025 Feb 26 | NPM 包中隐藏的恶意代码 | [cycode](https://cycode.com/blog/malicious-code-hidden-in-npm-packages/) | 2025 Jan 14 | npm 命令混淆 | [Checkmarx](https://checkmarx.com/blog/npm-command-confusion/) | 2025 Jan 13 | 针对 Chalk 和 Chokidar 的仿冒包含有后门木马 | [socket](https://socket.dev/blog/kill-switch-hidden-in-npm-packages-typo-squatting-chalk-and-chokidar) | 2024 Dec 20 | 周下载量达 40 万的 `@rspack/core` 和 `@rspack/cli` 因 npm token 被盗而遭到入侵,并被用于发布用于门罗币加密货币挖矿的恶意包 | [rspack 发布说明](https://github.com/web-infra-dev/rspack/releases/tag/v1.1.8), [sonatype](https://www.sonatype.com/blog/npm-packages-rspack-vant-compromised-blocked-by-sonatype), [Socket](https://socket.dev/blog/rspack-supply-chain-attack) | 2024 Dec 11 | 恶意 npm 包 `@typescript-eslint/eslint-plugin` 在域名仿冒攻击中窃取数据 | [Socket](https://socket.dev/blog/malicious-npm-package-typosquats-popular-typescript-eslint-plugin) | 2024 Dec 3 | 在 Solana 的 web3.js 库 `@solana/web3.js` 中检测到供应链攻击 | [Socket](https://socket.dev/blog/supply-chain-attack-solana-web3-js-library) | 2024 Nov 12 | "node-request-ip"、"request-ip-check" 和 "request-ip-validator" 是 npm 上针对加密货币并安装木马的虚假 IP 检查工具 | [sonatype](https://www.sonatype.com/blog/fake-ip-checker-utilities-on-npm-are-crypto-stealers) | 2024 Oct 31 | Lottie Player npm 包因加密钱包窃取被妥协 | [Snyk](https://snyk.io/blog/lottie-player-npm-package-compromised-crypto-wallet-theft/) | 2024 Oct 31 | 针对 Puppeteer、Bignum.js 及其他约 137 个加密货币库的域名仿冒活动 | [Phylum](https://blog.phylum.io/supply-chain-security-typosquat-campaign-targeting-puppeteer-users/) | 2024 Oct 28 | 依赖混淆活动用于 npm 供应链安全并被用来入侵一家财富 500 强公司 | https://www.landh.tech/blog/20241028-hidden-supply-chain-links/ | 2024 Oct 4 | `lodasher`、`them4on`、`laodasher` 伪造的 npm 包旨在通过修改过的 AnyDesk 二进制文件对 Windows 用户进行后门攻击 | [Sonatype](https://www.sonatype.com/blog/counterfeit-lodash-attack-leverages-anydesk-to-target-windows-users) | 2024 Jul 16 | `string-width-cjs` 及其他可疑维护者揭开了 npm 供应链攻击的线索 | [Snyk](https://snyk.io/blog/threads-of-npm-supply-chain-attack/) | 2024 Jul 11 | `noblox-ts` starjacking 和 npm 上的 QuasarRAT | [stacklok](https://stacklok.com/blog/destroyloneliness-npm-starjacking-attack-on-roblox-nodejs-library-delivers-quasarrat) | 2024 Jun 17 | `ua-parser-js` 在“抽地毯”行为中切换为 AGPL+商业许可 | [Adventures in Nodeland](https://adventures.nodeland.dev/archive/what-happens-when-a-major-npm-library-goes/) | 2024 Jun 11 | `cors-parser` npm 包在 PNG 文件中隐藏跨平台后门 | [Sonatype](https://www.sonatype.com/blog/cors-parser-npm-package-hides-cross-platform-backdoor-in-png-files) | 2024 Jun 03 | npm 注册表缓存投毒攻击 | [landh.tech](https://www.landh.tech/blog/20240603-npm-cache-poisoning/) | 2024 Apr 26 | 虚假工作面试利用新的 Python 后门 targeting 开发人员 | [Bleeping Computer](https://www.bleepingcomputer.com/news/security/fake-job-interviews-target-developers-with-new-python-backdoor/) | 2024 Apr 16 | Tea 代币和滥用 OSS 基础设施进行变现的开发人员 | [Sonatype](https://www.sonatype.com/blog/devs-flood-npm-with-10000-packages-to-reward-themselves-with-tea-tokens) | 2024 Feb 6 | noblox.js-proxy-server 恶意 npm 包伪装成 Noblox.js,针对 Roblox 用户进行数据窃取 | [Socket](https://socket.dev/blog/malicious-npm-package-masquerades-as-noblox-js) | 2024 Jan 25 | npm 被倾泻了 748 个存储电影的包 | [Sonatype](https://blog.sonatype.com/npm-flooded-with-748-packages-that-store-movies) | 2024 Jan 3 | 一个具有注册表范围依赖的 `everything` 包阻止了包被取消发布 | [SC Media](https://www.scmagazine.com/news/npm-registry-prank-leaves-developers-unable-to-unpublish-packages) | 2023 Dec 14 | Ledger 供应链安全攻击引入加密资产耗尽恶意软件 (@ledgerhq/connect-kit) | [Sonatype](https://blog.sonatype.com/decrypting-the-ledger-connect-kit-compromise-a-deep-dive-into-the-crypto-drainer-attack), 推文 [1](https://twitter.com/Neodyme/status/1735337711555285261) [2](https://twitter.com/Ledger/status/1735370531224834430) [3](https://x.com/josephdelong/status/1735293295301972022?s=20) [4](https://twitter.com/Mudit__Gupta/status/1735301007188406681) [5](https://twitter.com/FrankResearcher/status/1735286837088792794) [6](https://twitter.com/Ledger/status/1735326240658100414) [7](https://twitter.com/AndrewMohawk/status/1735290127084105743) [8](https://twitter.com/bantg/status/1735279127752540465) | 2023 Sep 27 | 伪造的 Dependabot 提交窃取 GitHub token 并向 文件注入恶意软件 | [Checkmarx](https://checkmarx.com/blog/surprise-when-dependabot-contributes-malicious-code/) | 2023 Jun 27 | Manifest Confusion - 一个新公开的 npm 包管理器漏洞,展示了包元数据不一致的问题 | [Darcy Clarke 的博客](https://blog.vlt.sh/blog/the-massive-hole-in-the-npm-ecosystem) | 2023 Jun 23 | 朝鲜攻击者利用社会工程学和供应链攻击 npm | [Phylum](https://blog.phylum.io/junes-sophisticated-npm-attack-attributed-to-north-korea/) | 2023 Jun 15 | 供应链攻击利用被废弃的 S3 存储桶分发恶意二进制文件,影响 [bignum npm 包](https://www.npmjs.com/package/bignum?activeTab=versions) | [The Hacker News](https://thehackernews.com/2023/06/new-supply-chain-attack-exploits.html), [Checkmarx](https://checkmarx.com/blog/hijacking-s3-buckets-new-attack-technique-exploited-in-the-wild-by-supply-chain-attackers/) | 2023 Jun 06 | ChatGPT 推荐的包可能会被用作供应链安全攻击向量| [Vulcan](https://vulcan.io/blog/ai-hallucinations-package-risk) | 2023 Feb 16 | 研究人员劫持了下载量达数百万的流行 NPM 包 | [Illustria on The Hacker News](https://thehackernews.com/2023/02/researchers-hijack-popular-npm-package.html) | 2023 Feb 10 | 研究人员在 PyPI Python 包中发现了被混淆的恶意代码,并发现与 npm 生态系统相关的证据 | [The Hacker News](https://thehackernews.com/2023/02/researchers-uncover-obfuscated.html) | 2023 Jan 29 | Phylum 识别出 137 个恶意 npm 包 | [phylum](https://blog.phylum.io/phylum-identifies-98-malicious-npm-packages) | 2022 Nov 29 | 不可见的 npm 恶意软件可能隐藏在精心构造的版本中,并绕过 npm audit 的安全检查 | [JFrog](https://jfrog.com/blog/invisible-npm-malware-evading-security-checks-with-crafted-versions/) | 2022 Nov 24 | Phylum 团队捕获了声称是图像压缩工具的恶意 npm 包 imagecompress-mini | [Louisw Lang on Twitter](https://twitter.com/LouiswLang/status/1595835195382534144) | 2022 Oct 12 | Aqua Security 发现了 npm 中的一个漏洞,该漏洞允许披露注册表上私有托管的 npm 包 | [Aqua](https://blog.aquasec.com/private-packages-disclosed-via-timing-attack-on-npm) | 2022 Oct 07 | LofyGang 分发了约 200 个恶意 NPM 包以窃取信用卡数据 | [TheHackerNews](https://thehackernews.com/2022/10/lofygang-distributed-200-malicious-npm.html) | 2022 Sep 23 | 流行的加密货币交易所 dYdX 的 NPM 账户遭到黑客攻击 | [Mend](https://www.mend.io/resources/blog/popular-cryptocurrency-exchange-dydx-has-had-its-npm-account-hacked/) | 2022 Jul 29 | 恶意包 `small-sm`、`pern-valids`、`lifeculer` 和 `proc-title` 旨在窃取信用卡信息和 discord token | [darkreading](https://www.darkreading.com/risk/malicious-npm-packages-discord-tokens-credit-card) | 2022 May 26 | 被盗的 oAuth GitHub token 导致了 npm 安全漏洞,泄露了用户账户元数据、私有包以及日志中的明文密码 | [GitHub](https://github.blog/2022-05-26-npm-security-update-oauth-tokens/) | 2022 May 24 | 恶意 npm 包利用依赖混淆攻击 | [Snyk](https://snyk.io/blog/snyk-200-malicious-npm-packages-cobalt-strike-dependency-confusion-attacks/), [Snyk](https://snyk.io/blog/npm-dependency-confusion-attack-gxm-reference/) | 2022 May 23 | 由于域名过期导致 npm 包被劫持 | [TheRegister](https://www.theregister.com/2022/05/23/npm_dependencies_vulnerable/) | 2022 Apr 05 | 新的 npm 漏洞允许攻击者更好地针对包进行账户接管 | [Aqua](https://blog.aquasec.com/npm-supply-chain-attack) | 2022 Apr 26 | npm 包种植 | [Aqua](https://blog.aquasec.com/npm-package-planting), [The Hacker News](https://thehackernews.com/2022/04/npm-bug-allowed-attackers-to-distribute.html) | 2022 Mar 31 | 来自 `styled-components` 的更多抗议软件 | [Checkmarx Security blog](https://checkmarx.com/blog/new-protestware-found-lurking-in-highly-popular-npm-package/) | 2022 Mar 18 | 来自 `es5-ext` 和 `event-source-pollyfill` 的更多抗议软件 | [Snyk advisory for event-source-pollyfill](https://security.snyk.io/vuln/SNYK-JS-EVENTSOURCEPOLYFILL-2429580), [es5-ext commit](https://github.com/medikoo/es5-ext/commit/28de285ed433b45113f01e4ce7c74e9a356b2af2), [ArsTechnica](https://arstechnica.com/information-technology/2022/03/sabotage-code-added-to-popular-npm-package-wiped-files-in-russia-and-belarus/) | | 2022 March 16 | `peacenotwar` 模块在 `node-ipc` 包中破坏 npm 开发者,以抗议入侵乌克兰 | [Snyk blog](https://snyk.io/blog/peacenotwar-malicious-npm-node-ipc-package-vulnerability), [Darkreading](https://www.darkreading.com/application-security/recent-code-sabotage-incident-latest-to-highlight-code-dependency-risks), [SC Magazine](https://www.scmagazine.com/analysis/application-security/what-happens-when-protestware-sabotages-open-source-in-response-to-current-events) | | 2022 Mar 7 | 恶意包被捕获通过合法的 webhook 服务渗透数据 | [Checkmarx Security blog](https://medium.com/checkmarx-security/webhook-party-malicious-packages-caught-exfiltrating-data-via-legit-webhook-services-6e046b07d191) | | 2022 Feb 22 | 由于域名仿冒攻击而产生的 25 个恶意 JavaScript 库 | [TheHackerNews](https://thehackernews.com/2022/02/25-malicious-javascript-libraries.html) | | 2022 Feb 11 | 2,818 个 npm 账户使用带有过期域名的电子邮件地址 | [TheRecord](https://therecord.media/thousands-of-npm-accounts-use-email-addresses-with-expired-domains) | | 2021 Dec 08 | 17 个 JavaScript 库包含恶意代码,用于收集和窃取 Discord 访问 token 和用户计算机上的环境变量 - | [TheRecord](https://therecord.media/malicious-npm-packages-caught-stealing-discord-tokens-environment-variables/) | | 2021 December 01 | Bladabindi 木马和 RAT 恶意软件 | [Sonatype](https://blog.sonatype.com/bladabindi-njrat-rat-in-jdb.js-npm-malware) | | 2021 November 04 | coa 和 rc 包 - 流行的 npm 库 'coa' 今天被劫持并注入了恶意代码,短暂影响了全球的 React 管道 | [Bleepingcomputer](https://www.bleepingcomputer.com/news/security/popular-coa-npm-library-hijacked-to-steal-user-passwords), [the record](https://therecord.media/malware-found-in-coa-and-rc-two-npm-packages-with-23m-weekly-downloads/), [npm tweet](https://twitter.com/npmjs/status/1456310627362742284), [npm tweet for rc](https://twitter.com/npmjs/status/1456398505832976384). | | 2021 October 27 | noblox.js-proxy 和 noblox.js - 针对 official roblox API 和 SDK npm 包 用户 的仿冒 npm 包 | [the register](https://www.theregister.com/2021/10/27/npm_roblox_ransomware) | | 2021 October 22 | ua-parser-js - 发现名为 ua-parser-js 的流行 NPM 包的版本包含恶意代码 | [Cybersecurity and Infrastructure Security Agency (CISA)](https://us-cert.cisa.gov/ncas/current-activity/2021/10/22/malware-discovered-popular-npm-package-ua-parser-js), [github issue](https://github.com/faisalman/ua-parser-js/issues/536), [IOCs](https://twitter.com/BleepinComputer/status/1451964720974635021?s=20), [portswigger](https://portswigger.net/daily-swig/popular-npm-package-ua-parser-js-poisoned-with-cryptomining-password-stealing-malware), [theregister](https://www.theregister.com/2021/10/27/npm_roblox_ransomware) | | 2021 September 02 | pac-resolver - 可以使本地网络上的威胁行为者在你的 Node.js 进程尝试发出 HTTP 请求时在其中运行任意代码 | [arstechnica.com](https://arstechnica.com/information-technology/2021/09/npm-package-with-3-million-weekly-downloads-had-a-severe-vulnerability/) | | 2021 August 07 | npm 包所有权流程适得其反,暴露了供应链安全的潜在攻击向量。 | [Twitter](https://twitter.com/Andrewmd5/status/1423915732979437571) | | 2021 April 13 | 隐藏在伪造的 Browserify NPM 包中的新型 Linux、macOS 恶意软件:web-browserify | [Bleepingcomputer](https://www.bleepingcomputer.com/news/security/new-linux-macos-malware-hidden-in-fake-browserify-npm-package). | | 2020 December 02 | **jdb.js - db-json.js** - 恶意 npm 包被捕获安装远程访问木马。 | [zdnet.com](https://www.zdnet.com/google-amp/article/malicious-npm-packages-caught-installing-remote-access-trojans/), [Bleepingcomputer](https://www.bleepingcomputer.com/news/microsoft/malicious-npm-packages-used-to-install-njrat-remote-access-trojan/). | | 2020 November 09 | **discord 恶意 npm 包** - Npm 包被捕获窃取敏感的 Discord 和浏览器文件 | [sonatype](https://blog.sonatype.com/discord.dll-successor-to-npm-fallguys-), [zdnet](https://www.zdnet.com/article/npm-package-caught-stealing-sensitive-discord-and-browser-files/). | | 2020 November 03 | **twilio-npm** - 恶意 npm 包在程序员的计算机上开后门。 | [zdnet](https://www.zdnet.com/article/malicious-npm-package-opens-backdoors-on-programmers-computers) | | 2020 August 29 | **fallguys** - 窃取敏感文件的恶意包。 | [zdnet](https://www.zdnet.com/article/malicious-npm-package-caught-trying-to-steal-sensitive-discord-and-browser-files/) | | 2020 April 27 | **is-promise** - 单行库破坏了整个生态系统。 | [Forbes Lindesay - Maintainer post-mortem](https://medium.com/javascript-in-plain-english/is-promise-post-mortem-cab807f18dcc), [snyk's postmortem](https://snyk.io/blog/why-did-is-promise-happen-and-what-can-we-learn-from-it/) | | 2019 August 22 | **bb-builder** - 针对 Windows 系统窃取信息并将其发送到远程服务的恶意包。 | [Snyk](https://snyk.io/vuln/SNYK-JS-BBBUILDER-460132), [Reversing Labs](https://blog.reversinglabs.com/blog/the-npm-package-that-walked-away-with-all-your-passwords), [Bleeping Computer](https://www.technadu.com/malicious-package-stealing-user-credentials-npm-repository/77482/) | | 2019 June 05 | **EasyDEX-GUI** - 在 npm 包 event-stream 中发现恶意代码。 | [npm](https://blog.npmjs.org/post/185397814280/plot-to-steal-cryptocurrency-foiled-by-the-npm), [snyk](https://snyk.io/blog/yet-another-malicious-package-found-in-npm-targeting-cryptocurrency-wallets), [komodo announcement](https://komodoplatform.com/update-agama-vulnerability/) | | 2018 November 27 | **event-stream** - 在 npm 包 event-stream 中发现恶意代码。 | [github issue](https://github.com/dominictarr/event-stream/issues/116) [snyk](https://snyk.io/blog/malicious-code-found-in-npm-package-event-stream), [snyk's postmortem](https://snyk.io/blog/a-post-mortem-of-the-malicious-event-stream-backdoor), [schneid](https://schneid.io/blog/event-stream-vulnerability-explained/), [intrinsic](https://medium.com/intrinsic/compromised-npm-package-event-stream-d47d08605502), [npm](https://blog.npmjs.org/post/180565383195/details-about-the-event-stream-incident), [jayden](https://jaydenseric.com/blog/event-stream-compromise), [hillel wayne's postmortem](https://www.hillelwayne.com/post/stamping-on-eventstream/) | | 2018 July 12 | **eslint** - 在 npm 包 eslint-scope 和 eslint-config-eslint 中发现恶意包。 | [github issue](https://github.com/eslint/eslint-scope/issues/39), [eslint tweet](https://twitter.com/geteslint/status/1017419074136092673?lang=en), [eslint's postmortem](https://eslint.org/blog/2018/07/postmortem-for-malicious-package-publishes), [nodesource's postmortem](https://nodesource.com/blog/a-high-level-post-mortem-of-the-eslint-scope-security-incident/), [npm's statement](https://status.npmjs.org/incidents/dn7c1fgrr7ng) | | 2018 May 02 | **getcookies** - 恶意包 getcookies 被嵌入到更高层级的 express 相关包中。 | [GitHub issue](https://github.com/RocketChat/Rocket.Chat/issues/10641), [npm](https://blog.npmjs.org/post/173526807575/reported-malicious-module-getcookies), [bleepingcomputer.com](https://www.bleepingcomputer.com/news/security/somebody-tried-to-hide-a-backdoor-in-a-popular-javascript-npm-package/), [Snyk’s getcookies vulnerability page](https://snyk.io/vuln/npm:getcookies:20180502), [Hacker News](https://news.ycombinator.com/item?id=16975025) | | 2018 Feb 13 | 拥有 conventional-changelog npm 包访问权限的维护者账户被攻破,并发布了长达 1 天 11 小时的恶意软件 | [conventional-changelog repository update](https://github.com/conventional-changelog/conventional-changelog/issues/282#issuecomment-365367804) | 2017 August 02 | **crossenv** - 恶意仿冒包 crossenv 窃取环境变量。 | [CJ blog on typosquat packages](https://medium.com/@ceejbot/crossenv-malware-on-the-npm-registry-45c7dc29f6f5), [Typosquatting research paper](https://incolumitas.com/2016/06/08/typosquatting-package-managers/), [bleepingcomputer.com](https://www.bleepingcomputer.com/news/security/javascript-packages-caught-stealing-environment-variables/), [Snyk’s crossenv vulnerability page](https://snyk.io/vuln/npm:crossenv:20170802), [Hacker News](https://news.ycombinator.com/item?id=14901566) | | 2016 March 22 | **left-pad** - 一位开发者如何用 11 行 JavaScript 弄崩 Node、Babel 和数千个项目。 | [left-pad.io](http://left-pad.io), [The Register](https://www.theregister.co.uk/2016/03/23/npm_left_pad_chaos), [qurtaz](https://qz.com/646467/how-one-programmer-broke-the-internet-by-deleting-a-tiny-piece-of-code). | 补充说明: * 关于恶意事件的资源请参考 [BadJS](https://badjs.org/) - 一个在网站、扩展程序、npm 包以及 JavaScript 存在的任何其他地方发现的恶意 JavaScript 存档库。 * [npm zoo](https://github.com/spaceraccoon/npm-zoo) 是一个为了教育目的而跟踪原始恶意包源代码的档案库。 # 教育 ## 新闻通讯 - [Node.js 安全通讯](https://newsletter.nodejs-security.com/) - JavaScript 和 Web 安全见解、最新安全漏洞、实战安全代码见解、npm 生态系统事件、Node.js 运行时功能更新、Bun 和 Deno 运行时更新、安全编码最佳实践、恶意软件、恶意包等。 ## 文章 - [Node.js 安全路线图](https://node-sec-roadmap-fyi.uc.r.appspot.com/) (原域名 https://nodesecroadmap.fyi/ 已不可用。请参见 [#42](https://github.com/lirantal/awesome-nodejs-security/issues/42)) - [10 个 npm 安全最佳实践](https://snyk.io/blog/ten-npm-security-best-practices/) - [OWASP 备忘单系列 - Node.js 安全备忘单](https://cheatsheetseries.owasp.org/cheatsheets/Nodejs_security_cheat_sheet.html) - [什么是后门?让我们用 Node.js 构建一个](https://snyk.io/blog/what-is-a-backdoor/) - [恶意包的剖析](https://blog.phylum.io/malicious-javascript-code-in-npm-malware/) - [为什么 npm lockfiles 可能成为注入恶意模块的安全盲区](https://snyk.io/blog/why-npm-lockfiles-can-be-a-security-blindspot-for-injecting-malicious-modules/) - [安全发布 npm 包的 GitHub Actions](https://snyk.io/blog/github-actions-to-securely-publish-npm-packages/) - [Top 11 Node.js 安全最佳实践 | Sqreen.com](https://web.archive.org/web/20241005082455/https://blog.sqreen.com/nodejs-security-best-practices/) - [一个关于(原型)中毒的故事](https://www.fastify.io/docs/latest/Guides/Prototype-Poisoning/) - [加固你的 GitHub 组织](https://dev.to/nodesecure/securize-your-github-org-4lb7) - [研究案例:规模化供应链安全 – NPM 账户接管的内幕](https://laburity.com/research-npm-account-takeovers/) - [npm 安全最佳实践https://github.com/lirantal/npm-security-best-practices) ## 研究论文 - [深入探究 Visual Studio Code 扩展安全漏洞](https://snyk.io/blog/visual-studio-code-extension-security-vulnerabilities-deep-dive) ## 书籍 - [保护你的 Node.js Web 应用程序:将攻击者拒之门外,让用户满意](https://www.amazon.com/Secure-Your-Node-js-Web-Application-ebook/dp/B01BPPUP30) 作者 Karl Duuna,2016 年 - [Essential Node.js Security](https://leanpub.com/nodejssecurity) 作者 Liran Tal,2017 年 - 实战导向并附有丰富源代码,是保护 Node.js Web 应用程序的实用指南。 - [Securing Node JS Apps ](https://leanpub.com/securingnodeapps) 作者 Ben Edmunds,2016 年 - 学习高级开发人员通常需要多年经验才能掌握的安全基础知识,所有这些都被浓缩在一本快速简便的手册中。 - [Web 开发者安全工具箱 ](https://leanpub.com/b/webdevelopersecuritytoolbox) - Node.js 和 Web 安全书籍套装。 - [Thomas Gentilhomme](https://github.com/fraxken) 著作:[成为 Node.js 开发者](https://github.com/fraxken/ebook_nodejs) - [Node.js 安全编码:防御命令注入漏洞](https://www.nodejs-security.com/book/command-injection/) - [Node.js 安全编码:路径遍历漏洞的预防与利用](https://www.nodejs-security.com/book/path-traversal) - [Node.js 安全编码:缓解和武器化代码注入漏洞](https://www.nodejs-security.com/book/code-injection) ## 路线图 - [Node.js 开发者路线图](https://roadmap.sh/nodejs) # 公司 - [Snyk](https://snyk.io) - 开发者优先的解决方案,可自动查找和修复依赖项中的漏洞。 - [Datadog ASM](https://www.datadoghq.com/product/application-security-monitoring/) - 具有实时威胁检测和保护功能的应用程序安全监控(前身为 Sqreen,于 2021 年被收购)。 - [NodeSource](https://nodesource.com) - 关键任务型 Node.js 应用程序。提供 N|Solid 和 Node 认证模块。 - [GuardRails](https://www.guardrails.io) - 一个 GitHub 应用程序,可在你的 Pull Request 中提供即时安全反馈。 - [NodeSecure](https://github.com/NodeSecure) - 一个构建免费和开源 JavaScript/Node.js 安全工具的开发者组织。 ## 黑客演练场 - [OWASP NodeGoat](https://github.com/OWASP/NodeGoat) - OWASP NodeGoat 项目提供了一个学习环境,用于了解 OWASP Top 10 安全风险如何应用于使用 Node.js 开发的 Web 应用程序,以及如何有效地解决这些问题。 - [OWASP Juice Shop](https://github.com/bkimminich/juice-shop) - OWASP Juice Shop 是一个极其不安全的 Web 应用程序,用于安全培训,完全使用 Javascript 编写,涵盖了整个 OWASP Top Ten 和其他严重的安全漏洞。 - [DomGoat](https://domgo.at/cxss/intro) - 当来自源 的不受信任数据进入目标 时,就会发生客户端 XSS。左侧菜单中提供了有关不同源、不同目标以及由于它们导致的 XSS 示例的信息和练习。 ## 许可证 [![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](http://creativecommons.org/publicdomain/zero/1.0/)
标签:CISA项目, CSRF防护, DAST, Express安全, GitHub Advanced Security, GNU通用公共许可证, Hacking Playground, Helmet, MITM代理, Node.js, PE 加载器, Web安全, Web框架安全, 内核模块, 动态应用安全测试, 安全专业人员, 安全书籍, 安全事件, 安全加固, 安全培训, 安全学习, 安全编码, 安全资源, 应用程序安全, 恶意软件分析, 情报收集, 暗色界面, 漏洞研究, 网络安全, 蓝队分析, 输入输出校验, 错误基检测, 隐私保护, 静态代码分析