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** [![npm version](https://img.shields.io/npm/v/@chiranthmoger/fortifyjs?color=blue&style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@chiranthmoger/fortifyjs) [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg?style=for-the-badge)](https://opensource.org/licenses/MIT) [![TypeScript Ready](https://img.shields.io/badge/TypeScript-Ready-blue.svg?style=for-the-badge&logo=typescript)](https://www.typescriptlang.org/) [![Zero Dependencies](https://img.shields.io/badge/Dependencies-0-green.svg?style=for-the-badge&logo=nodedotjs)](https://www.npmjs.com/package/@chiranthmoger/fortifyjs) *一行代码即可防范 injection、XSS、CSRF、SSRF 等 10 多种攻击类型。*
*替代 `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 {} ```
## ⚙️ 高级配置 需要更多控制权?您可以通过传递一个配置对象轻松覆盖层级默认设置。 ``` const { shield } = require('fortifyjs'); app.use(shield('medium', { cors: { origin: ['https://myapp.com', 'https://admin.myapp.com'] }, rateLimit: { max: 300, windowMs: 10 * 60 * 1000 } })); ``` ## 🛠️ 离线 CLI 测试 FortifyJS 包含一个强大的命令行界面,用于在您的 CI/CD pipeline 中离线测试 payload 和扫描输入。 扫描特定字符串以查找恶意签名: ``` fortifyjs scan "" ``` 扫描包含 payload 的文件并以 CSV 格式输出结果: ``` fortifyjs scan-file payloads.txt --format csv ``` ## 📊 安全 Dashboard **Advanced 层级**包含一个交互式的内置安全 Dashboard,用于实时监控被阻止的请求、速率限制和行为异常。 启用后,可通过 `/admin/security` 安全访问。 ## 🤝 贡献与许可 - 📖 请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 获取开发指南。 - 🔒 请参阅 [SECURITY.md](SECURITY.md) 了解报告漏洞的方式。 - 📜 FortifyJS 是开源软件,基于 [MIT License](LICENSE) 授权。
构建时始终将绝对安全和零臃肿放在首位。
标签:AppImage, CISA项目, DOE合作, GNU通用公共许可证, MITM代理, Node.js, WAF, Web安全, Web应用防火墙, 中间件, 安全防护, 暗色界面, 自定义脚本, 蓝队分析