Chiranth-Janardhan-moger/fortifyjs
GitHub: Chiranth-Janardhan-moger/fortifyjs
FortifyJS 是一款零依赖的 Node.js Web 应用防火墙,通过单一中间件整合 SQLi、XSS、CSRF 等十余种攻击防护,旨在替代 helmet、cors、csurf 等多个安全包。
Stars: 1 | Forks: 0
# 🛡️ FortifyJS
**适用于 Node.js 的零依赖 Web Application Firewall**
[](https://www.npmjs.com/package/@chiranthmoger/fortifyjs)
[](https://opensource.org/licenses/MIT)
[](https://www.typescriptlang.org/)
[](https://www.npmjs.com/package/@chiranthmoger/fortifyjs)
*一行代码即可防范 injection、XSS、CSRF、SSRF 等 10 多种攻击类型。*
*替代 `helmet`、`cors`、`csurf` 和 `express-rate-limit`。*
*替代 `helmet`、`cors`、`csurf` 和 `express-rate-limit`。*
## 🚀 为什么选择 FortifyJS? 构建安全的 Node.js 应用过去意味着要同时兼顾多个 middleware,配置复杂的规则集,并祈祷自己没有遗漏关键的漏洞攻击向量。 **现在不需要了。** FortifyJS 将所有功能整合到一个单一、高度优化且零依赖的引擎中。 ### 📉 替代方案 | 传统 Package | FortifyJS 功能 | | :--- | :--- | | 🐢 `helmet` | 🛡️ 安全标头防护 | | 🐢 `cors` | 🛡️ CORS 防护 | | 🐢 `csurf` | 🛡️ CSRF 防护 | | 🐢 `express-rate-limit` | 🛡️ 速率限制防护 | | 🐢 `express-mongo-sanitize` | 🛡️ NoSQLi 检测器 | | 🐢 `xss-clean` | 🛡️ XSS 检测器 | ## 📦 快速开始 ``` npm install @chiranthmoger/fortifyjs ``` ### ⚡ Express ``` const express = require('express'); const { shield } = require('fortifyjs'); const app = express(); app.use(shield('medium')); // That's it. You're protected. app.listen(3000, () => console.log('Server protected by FortifyJS 🛡️')); ``` ### ⚡ Fastify ``` const fastify = require('fastify')(); const { fastifyPlugin } = require('fortifyjs/adapters/fastify'); fastify.register(fastifyPlugin, { tier: 'medium' }); fastify.listen({ port: 3000 }); ``` ## 🛡️ 4 个防护层级 FortifyJS 提供预定义的安全配置文件,以匹配您应用程序的风险状况。无需复杂的配置。 | 层级 | 检测级别 | 标头 | 速率限制 | CORS | CSRF | 机器人检测 | 行为检测 | 文件上传 | Dashboard | | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | | **🟢 basic** | 均衡 | ✅ | 100/15m | 同源 | ❌ | 标记 | 熵 | ❌ | ❌ | | **🟡 medium** | 均衡 | ✅ | 200/15m | 同源 | ❌ | 阻止 | ✅ | ✅ | ❌ | | **🟠 hard** | 严格 | ✅ | 100/15m | 同源 | ✅ | 阻止 | 5k 请求 | ✅ | ❌ | | **🔴 advanced**| 严格 | ✅ | 100/15m | 同源 | ✅ | 阻止 | 5k 请求 | 扫描 | ✅ | ## 🔍 14 个高级检测引擎 在底层,FortifyJS 充当一个完整的 Web Application Firewall,针对 14 种不同的攻击向量主动分析 payload: 1. 💉 **SQLi**:识别针对主流 SQL 方言的 SQL injection 尝试。 2. 🎭 **XSS**:拦截跨站脚本攻击,包括突变型和基于 DOM 的向量。 3. 🍃 **NoSQLi**:检测专为 MongoDB、CouchDB 和 Elasticsearch 设计的查询运算符注入。 4. 💻 **CmdI**:防止跨 Unix 和 Windows 平台的操作系统命令注入。 5. 📂 **Path Traversal**:阻止旨在读取任意文件的目录遍历尝试。 6. 🌐 **SSRF**:拦截针对内部基础设施的 Server-Side Request Forgery 尝试。 7. 📄 **XXE**:防止 XML External Entity 处理攻击。 8. 🧬 **Prototype Pollution**:检测并阻止 JavaScript 对象原型篡改。 9. 🔀 **HPP**:缓解 HTTP Parameter Pollution 漏洞。 10. ↪️ **Open Redirect**:验证目标路径,防止恶意重定向。 11. ✂️ **CRLF**:通过回车和换行符阻止 HTTP 响应拆分。 12. 🧩 **Template Injection**:拦截服务端模板注入(例如 Jinja2、Twig、EJS)。 13. 📇 **LDAP Injection**:识别未经授权的 LDAP 查询篡改。 14. 🕸️ **GraphQL Abuse**:限制内省、深度嵌套和别名批处理。 ## 🔌 框架支持 FortifyJS 与框架无关。我们为最流行的 Node.js Web 框架提供了开箱即用的适配器:
Koa
``` const { koaMiddleware } = require('fortifyjs/adapters/koa'); app.use(koaMiddleware({ tier: 'hard' })); ```Hono
``` import { honoMiddleware } from 'fortifyjs/adapters/hono'; app.use('*', honoMiddleware({ tier: 'hard' })); ```NestJS
``` import { FortifyGuard } from 'fortifyjs/adapters/nestjs'; @UseGuards(new FortifyGuard('hard')) export class AppController {} ```
构建时始终将绝对安全和零臃肿放在首位。
标签:AppImage, CISA项目, DOE合作, GNU通用公共许可证, MITM代理, Node.js, WAF, Web安全, Web应用防火墙, 中间件, 安全防护, 暗色界面, 自定义脚本, 蓝队分析