Abhishek-yadav04/Obsidian

GitHub: Abhishek-yadav04/Obsidian

基于 Coraza v3 引擎构建的企业级 Web 应用防火墙,集威胁情报、GeoIP 封禁与实时分析于一体,提供开箱即用的 Web 安全防护方案。

Stars: 0 | Forks: 0

# 🛡️ OBSIDIAN Sentinel WAF v2.2.4 企业版

Obsidian Sentinel WAF

具备高级安全功能的企业级 Web Application Firewall
基于 Coraza v3 引擎 | 实时防护 | 零信任架构 | GeoIP 封禁 | 高级分析

功能快速开始架构API部署安全

## 📋 概述

Obsidian architecture diagram

**Obsidian Sentinel** 是一款企业级 Web Application Firewall,提供针对高级网络威胁的全面防护。它结合了久经考验的 Coraza WAF 引擎与前沿的企业级功能,包括 GeoIP 封禁、高级速率限制、威胁情报、Webhook 告警以及精细的分析能力。 ### 为什么选择 Obsidian? - **🔒 零信任安全**:HMAC-SHA256 JWT 身份验证、RBAC、CSRF 防护以及加密令牌验证 - **⚡ 高性能**:并发安全设计,热路径分配极少(256 分片速率限制器) - **📊 实时监控**:基于 WebSocket 的实时仪表板,集成 Chart.js 可视化和即时威胁可见性 - **🌐 高级威胁情报**:集成 Spamhaus、Emerging Threats、Firehol 和自定义源(2000+ 威胁) - **🗺️ GeoIP 防护**:支持 MaxMind 数据库的基于国家的封禁和风险评估 - **🚨 智能告警**:集成 Slack、Teams、Discord、PagerDuty 的 Webhook,支持严重性过滤 - **📈 企业级分析**:PostgreSQL 集成、全面的审计日志和执行报告 - **📱 现代 UI**:响应式 Bootstrap 5 深色主题仪表板,支持移动端 - **📦 单一二进制文件**:所有资源内嵌 - Redis/PostgreSQL 为企业功能可选项 ## ✨ 功能 ### 核心安全功能 | 功能 | 描述 | |---------|-------------| | **59+ 高级 WAF 规则** | 防护 XSS、SQLi、RCE、LFI、RFI、SSRF、XXE、SSTI、LDAP 注入 | | **JWT 身份验证** | HMAC-SHA256 签名令牌,支持可配置的过期时间和刷新 | | **高级 RBAC** | 基于角色的访问控制(管理员、分析师、查看者),具备细粒度权限 | | **256 分片速率限制** | 高性能滑动窗口,支持 Redis 集群 | | **多源威胁情报** | 来自 Spamhaus、Emerging Threats、Firehol 的实时防护(2000+ 威胁) | | **GeoIP 封禁** | 基于 MaxMind 数据库的国家防护和风险评分 | | **CSRF 防护** | 基于令牌的跨站请求伪造防御 | | **安全头** | CSP、HSTS、X-Frame-Options、X-Content-Type-Options | ### 企业级功能 | 功能 | 描述 | |---------|-------------| | **PostgreSQL 集成** | 企业级数据持久化和分析 | | **Redis 集群** | 分布式速率限制和会话管理 | | **HIBP 密码检查** | 使用 Have I Been Pwned 进行实时密码泄露验证 | | **响应体 DLP** | HTTP 响应中敏感信息的数据防泄露 | | **GraphQL 安全分析器** | 高级 GraphQL 查询分析,支持可配置限制 | | **缓存统计仪表板** | 实时缓存性能指标和管理 | | **速率限制重置控制** | 用于速率限制管理的管理控制 | | **Glassmorphism UI** | 具有 Glassmorphism 效果和增强 UX 的现代仪表板 | | **密码强度计** | 带有视觉反馈的实时密码验证 | | **Webhook 告警** | 向 Slack、Teams、Discord、PagerDuty 发送实时通知 | | **执行报告** | 包含图表和威胁分析的 PDF/Excel 报告 | | **全面审计** | 存储于 PostgreSQL 的完整安全事件追踪 | | **WebSocket 实时** | 无需轮询开销的实时仪表板更新 | | **高级分析** | 请求模式、地理分布、威胁关联 | | **多租户支持** | 管理员、安全分析师和只读查看者角色 | | **健康与指标** | Prometheus 兼容指标和 Kubernetes 就绪健康检查 | | **请求 ID 追踪** | 用于事件响应的端到端请求跟踪 | ### 防护的攻击类别 - 跨站脚本攻击 (XSS) - SQL 注入 (SQLi) - 远程代码执行 (RCE) - 本地文件包含 (LFI) - 远程文件包含 (RFI) - 服务端请求伪造 (SSRF) - XML 外部实体 (XXE) - 模板注入 (SSTI) - LDAP 注入 - 会话固定 - Java/反序列化攻击 ## 🚀 快速开始 ### 前置条件 - Go 1.23+(或用于 WASM 构建的 TinyGo) - Windows、Linux 或 macOS - **企业功能可选:** - PostgreSQL 12+(用于高级分析和审计日志) - Redis 6+(用于分布式速率限制和集群) - MaxMind GeoIP2 数据库(用于基于国家的封禁) ### 构建并运行 ``` # 克隆仓库 git clone https://github.com/Abhishek-yadav04/Obsidian.git cd obsidian # 安装依赖 go mod tidy # 选项 1:直接使用 Go 运行(推荐用于开发) go run ./cmd/obsidian # 选项 2:构建并运行可执行文件 cd cmd/obsidian go build -o obsidian.exe . ./obsidian.exe # 使用自定义端口运行 go run ./cmd/obsidian -port 8082 # 在开发模式下运行并开启 debug 日志 go run ./cmd/obsidian -port 8082 -dev # 使用 PostgreSQL 和 Redis 运行(Enterprise mode) export DATABASE_URL="postgres://user:pass@localhost/obsidian" export REDIS_URL="redis://localhost:6379" export OBSIDIAN_JWT_SECRET="your-very-secure-jwt-secret-here-at-least-32-chars" go run ./cmd/obsidian -port 8082 ``` ### 访问仪表板 打开浏览器访问:**http://localhost:8082** **默认凭据(生产环境中请立即修改):** | 角色 | 用户名 | 密码 | |------|----------|----------| | Admin | `admin` | `ObsidianAdmin#2024` | | Analyst | `analyst` | `ObsidianAnalyst#2024` | | Viewer | `viewer` | `ObsidianViewer#2024` | **角色权限:** - **Admin**:完全访问权限(规则、威胁、用户、审计日志、设置) - **Analyst**:只读安全数据 + 报告导出 - **Viewer**:只读仪表板和日志 ## 🏗️ 架构 ``` ┌─────────────────────────────────────────────────────────────────┐ │ Client Request │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Security Headers Middleware │ │ (CSP, X-Frame-Options, X-Content-Type-Options) │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Rate Limiter Middleware │ │ (Sliding Window, Per-IP Tracking) │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Threat Intelligence Check │ │ (Spamhaus DROP, Emerging Threats, Custom Lists) │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Coraza WAF Engine │ │ (55+ ModSecurity Rules) │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Application Router │ │ (API Handlers, Static Files) │ └─────────────────────────────────────────────────────────────────┘ ``` ### 项目结构 ``` obsidian/ ├── cmd/obsidian/ # Main application entry point │ ├── main.go # Server initialization and routing │ └── ui/ # Embedded frontend assets │ ├── index.html # Main dashboard (dark theme) │ ├── login.html # Authentication page │ ├── js/app.js # Frontend application logic │ ├── css/styles.css # Enterprise dark theme styling │ └── assets/ # Static assets (logo, icons) ├── internal/app/ # Core application packages │ ├── alerts/ # Webhook alert management │ ├── auth/ # JWT authentication & RBAC │ ├── geoip/ # Geographic IP blocking service │ ├── logging/ # Structured logging (Zap) │ ├── metrics/ # Prometheus-compatible metrics │ ├── ratelimit/ # 256-shard rate limiter │ ├── report/ # PDF/Excel report generation │ ├── security/ # Security middleware & headers │ ├── store/ # Data persistence (PostgreSQL/memory) │ ├── threatintel/ # Threat intelligence feeds │ └── tracing/ # Request ID tracing ├── migrations/ # Database migration scripts │ ├── 000001_initial_schema.up.sql │ └── 000001_initial_schema.down.sql ├── configs/ # Configuration files │ └── config.yaml # Default configuration └── testing/ # Test suites and benchmarks ├── e2e/ # End-to-end integration tests ├── performance/ # Load testing scenarios └── testdata/ # Test fixtures and data ``` ## 🔧 配置 ### 环境变量 | 变量 | 描述 | 默认值 | 必填 | |----------|-------------|---------|----------| | `OBSIDIAN_JWT_SECRET` | JWT 签名密钥(最少 32 字符) | 开发环境随机生成 | **是(生产环境)** | | `OBSIDIAN_ENV` | 环境(development/production) | development | 否 | | `OBSIDIAN_ALLOWED_ORIGINS` | 逗号分隔的 WebSocket 源 | localhost:8082 | 否 | | `DATABASE_URL` | PostgreSQL 连接字符串 | None | **是** | | `REDIS_URL` | Redis 连接字符串 | None | 否 | | `GEOIP_DATABASE_PATH` | MaxMind GeoIP2 数据库路径 | None | 否 | | `SUPABASE_URL` | 用于 OAuth 的 Supabase 项目 URL | None | 否(用于 OAuth) | | `SUPABASE_KEY` | Supabase anon/public 密钥 | None | 否(用于 OAuth) | | `LOG_LEVEL` | 日志级别(debug、info、warn、error) | info | 否 | | `LOG_FORMAT` | 日志格式(json、console) | json | 否 | | `OBSIDIAN_CRS_ENABLED` | 启用 OWASP CRS 加载 | false | 否 | | `OBSIDIAN_CRS_PATH` | CRS 根目录的文件系统路径 | None | 否 | | `OBSIDIAN_CRS_MODE` | CRS 引擎模式(DetectionOnly/On) | DetectionOnly | 否 | | `OBSIDIAN_CRS_FAIL_OPEN` | 如果 CRS 加载失败则继续启动 | false | 否 | | `OBSIDIAN_WAF_CUSTOM_RULES` | Obsidian 自定义规则文件路径 | rules/obsidian-custom.conf | 否 | ### OWASP CRS(外部规则集) Obsidian 在运行时将 OWASP CRS 作为外部规则集加载。CRS 文件**不包含**在本仓库中。要启用 CRS,请将官方 CRS 文件放置在磁盘上,并将 `OBSIDIAN_CRS_PATH` 指向包含 `crs-setup.conf` 和 `rules/` 目录的 CRS 根目录。 ### 命令行参数 ``` ./obsidian.exe [options] Options: -port int Port to run the server on (default 8082) -dev Run in development mode (relaxed security) -log-level Override LOG_LEVEL env var -log-format Override LOG_FORMAT env var ``` ### 示例 .env 文件 ``` # ⚠️ 切勿将此文件提交到版本控制 # 复制到 .env 并根据您的环境进行自定义 # JWT 认证(生产环境中必需 - 至少 32 个字符) OBSIDIAN_JWT_SECRET=your-super-secure-random-secret-minimum-32-chars # 环境 OBSIDIAN_ENV=production # PostgreSQL 数据库(必需) DATABASE_URL=postgresql://obsidian:secure_password@localhost:5432/obsidian?sslmode=require # Redis 缓存(可选 - 启用分布式限流) REDIS_URL=redis://localhost:6379/0 # 对于 TLS:REDIS_URL=rediss://user:pass@host:port/0 # 通过 Supabase 进行 OAuth(可选 - 启用 Google/GitHub 登录) SUPABASE_URL=https://your-project.supabase.co SUPABASE_KEY=your-anon-public-key # WebSocket Origins(根据您的域名进行自定义) OBSIDIAN_ALLOWED_ORIGINS=https://your-domain.com # GeoIP 数据库(可选) GEOIP_DATABASE_PATH=/opt/maxmind/GeoLite2-Country.mmdb # 日志 LOG_LEVEL=info LOG_FORMAT=json # OWASP CRS(外部规则集) OBSIDIAN_CRS_ENABLED=false OBSIDIAN_CRS_PATH=/opt/owasp-crs OBSIDIAN_CRS_MODE=DetectionOnly OBSIDIAN_CRS_FAIL_OPEN=false OBSIDIAN_WAF_CUSTOM_RULES=rules/obsidian-custom.conf ``` ### 生产部署清单 - [ ] 设置 `OBSIDIAN_JWT_SECRET`(32+ 个随机字符) - [ ] 设置 `OBSIDIAN_ENV=production` - [ ] 配置 PostgreSQL SSL(`sslmode=require`) - [ ] 立即更改所有默认用户密码 - [ ] 配置正确的 `OBSIDIAN_ALLOWED_ORIGINS` - [ ] 设置 Redis 用于分布式速率限制 - [ ] 如需要,启用 GeoIP 封禁 - [ ] 配置反向代理(nginx/Caddy)和 TLS - [ ] 设置日志聚合 - [ ] 配置告警 Webhook ## 📡 API 参考 ### 身份验证 #### POST /api/login 进行身份验证并获取 JWT 令牌。 **请求:** ``` { "username": "admin", "password": "password" } ``` **响应:** ``` { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "refresh_token": "...", "user": { "id": 1, "username": "admin", "role": "Admin" }, "expires_in": 900 } ``` ### 受保护端点(需要 Bearer 令牌) #### 核心安全 API | 端点 | 方法 | 描述 | 所需角色 | |----------|--------|-------------|---------------| | `/api/stats` | GET | 包含地理数据的仪表板统计信息 | Viewer | | `/api/logs` | GET | 带分页的安全事件日志 | Viewer | | `/api/rules` | GET | WAF 规则列表(59 条规则) | Viewer | | `/api/rules/create` | POST | 创建新 WAF 规则 | Admin | | `/api/rules/update` | PUT | 更新现有规则 | Admin | | `/api/rules/delete` | DELETE | 按 ID 删除规则 | Admin | | `/api/threats` | GET | 威胁情报数据(2000+ 威胁) | Viewer | | `/api/threats/block` | POST | 封禁 IP 地址 | Admin | #### 企业级分析 API | 端点 | 方法 | 描述 | 所需角色 | |----------|--------|-------------|---------------| | `/api/metrics` | GET | 系统和安全指标 | Viewer | | `/api/geoip/lookup` | GET | 任意 IP 的 GeoIP 查询 | Viewer | | `/api/geoip/blocked` | GET/POST/DELETE | 管理被封锁的国家 | Admin | | `/api/geoip/metrics` | GET | GeoIP 服务统计 | Viewer | | `/api/ratelimit/blacklist` | POST/DELETE | 管理 IP 黑名单 | Admin | | `/api/ratelimit/whitelist` | POST/DELETE | 管理 IP 白名单 | Admin | #### 告警和集成 API | 端点 | 方法 | 描述 | 所需角色 | |----------|--------|-------------|---------------| | `/api/alerts/webhooks` | GET/POST/DELETE | 管理 Webhook 集成 | Admin | | `/api/alerts/webhooks/test` | POST | 测试 Webhook 配置 | Admin | | `/api/export` | GET | 导出安全报告(PDF/Excel) | Analyst | | `/api/admin/users` | GET | 用户管理 | Admin | | `/api/admin/audit` | GET | 全面审计日志 | Admin | ### 健康检查 #### GET /api/health 返回全面的系统健康状态。 "note": "有关如何构建发布版本以及如何从 GHCR 拉取官方 Docker 镜像,请参阅本 README 中的 CI / Release 部分。" ``` --- ## 🧩 CI / 发布 Releases are performed by the repository GitHub Actions workflows. Key points: - The CI pipeline builds and tests the project, runs linting, security scans, and produces artifacts (platform binaries). - A separate Docker job builds multi-arch images and pushes them to GitHub Container Registry (GHCR) under `ghcr.io//:`. - The release job packages artifacts and creates a GitHub Release. The workflow also verifies the pushed Docker image by attempting to `docker pull` the released image during the release job. - An SBOM (CycloneDX JSON) is generated and attached to the release artifacts. How to pull the official release image from GHCR: ```bash # 认证到 GHCR(使用具有适当范围的个人访问令牌) echo "${GHCR_TOKEN}" | docker login ghcr.io -u --password-stdin # 拉取指定标签的镜像(示例:v2.2.4) docker pull ghcr.io//:v2.2.4 ``` 如果您在发布或 CI 方面遇到问题,请查看 `.github/workflows/ci.yml` 和 `.github/workflows/release.yml` 以了解构建期间执行的确切步骤。 { "status": "healthy", "uptime": "2h30m15s", "version": "2.1.0", "edition": "Enterprise", "name": "Obsidian Sentinel WAF", "features": { "waf_engine": true, "threat_intelligence": true, "rate_limiting": true, "geoip_blocking": true, "webhook_alerts": true, "postgresql": true, "redis": true, "advanced_analytics": true }, "stats": { "total_requests": 15432, "blocked_requests": 127, "active_threats": 2041, "blocked_countries": 3 } } ``` --- ## 🔐 安全 ### JWT Token 安全 - Tokens signed with HMAC-SHA256 - Configurable expiration (default: 15 minutes) - Refresh token rotation - Secrets stored in environment variables - Constant-time signature comparison - Role-based claims validation ### 高级限流 - 256-shard sliding window algorithm - Redis-backed distributed limiting - Per-IP and per-endpoint tracking - Configurable limits: - 200 requests/minute general - 5 login attempts/minute - Custom thresholds per endpoint - Whitelist/blacklist IP management - Geographic rate limiting ### 威胁情报来源 - **Spamhaus DROP/EDROP** - 800+ malicious networks - **Emerging Threats** - 1000+ compromised IPs - **Firehol Level 1** - 200+ high-confidence threats - **Custom feeds** - User-defined blocklists - **GeoIP risk scoring** - Country-based threat assessment - **Real-time updates** - Feeds refreshed every 4 hours ### GeoIP 安全 - MaxMind GeoIP2 database integration - Country-based blocking/allowing - Risk score calculation - VPN/Proxy/Tor detection - Threat score based on geography - Custom country rules with reasons ### 安全标头 ``` X-Content-Type-Options: nosniff X-Frame-Options: DENY X-XSS-Protection: 1; mode=block Referrer-Policy: strict-origin-when-cross-origin Content-Security-Policy: default-src 'self'; ... ``` --- ## 📦 部署 ### Docker(推荐) #### 简单部署 ```dockerfile FROM golang:1.22-alpine AS builder WORKDIR /app COPY . . RUN cd cmd/obsidian && go build -o obsidian . FROM alpine:latest RUN apk --no-cache add ca-certificates tzdata WORKDIR /app COPY --from=builder /app/cmd/obsidian/obsidian . EXPOSE 8082 CMD ["./obsidian", "-port", "8082"] ``` #### Docker Compose(仓库标准) 使用已提交的 `docker-compose.yml` 和以下模板之一: - `.env.docker.example` 用于本地 postgres + redis 容器 - `.env.external.example` 用于托管/外部 DB + Redis ``` # 内置 postgres + redis cp .env.docker.example .env.docker docker compose --env-file .env.docker up -d --build # 外部托管服务 cp .env.external.example .env.external docker compose --env-file .env.external up -d --build ``` 注意: - 对于 Compose 网络,请在 URL 中使用服务名(`postgres`、`redis`),而不是 `localhost`。 - `.env` 用于本地 `go run` 工作流;Docker 发布/部署请首选专用的环境文件。 - `OBSIDIAN_JWT_SECRET` 是必需的,必须按环境设置。 ### Kubernetes ``` apiVersion: apps/v1 kind: Deployment metadata: name: obsidian-waf namespace: security spec: replicas: 3 selector: matchLabels: app: obsidian-waf template: metadata: labels: app: obsidian-waf spec: containers: - name: obsidian image: obsidian:2.1.0 ports: - containerPort: 8082 env: - name: OBSIDIAN_JWT_SECRET valueFrom: secretKeyRef: name: obsidian-secrets key: jwt-secret - name: DATABASE_URL valueFrom: secretKeyRef: name: obsidian-secrets key: database-url - name: REDIS_URL value: "redis://obsidian-redis:6379/0" - name: GEOIP_DATABASE_PATH value: "/data/GeoLite2-Country.mmdb" resources: requests: memory: "256Mi" cpu: "250m" limits: memory: "512Mi" cpu: "500m" livenessProbe: httpGet: path: /api/health port: 8082 initialDelaySeconds: 10 periodSeconds: 30 readinessProbe: httpGet: path: /api/health port: 8082 initialDelaySeconds: 5 periodSeconds: 10 volumeMounts: - name: geoip-data mountPath: /data volumes: - name: geoip-data configMap: name: geoip-database --- apiVersion: v1 kind: Service metadata: name: obsidian-waf-service spec: selector: app: obsidian-waf ports: - protocol: TCP port: 80 targetPort: 8082 type: LoadBalancer ``` ### Systemd 服务 ``` [Unit] Description=Obsidian Sentinel WAF After=network.target [Service] Type=simple User=obsidian WorkingDirectory=/opt/obsidian Environment=OBSIDIAN_JWT_SECRET=your-secret-here ExecStart=/opt/obsidian/obsidian -port 8082 Restart=always RestartSec=5 [Install] WantedBy=multi-user.target ``` ## 📊 文档 | 文档 | 描述 | |----------|-------------| | [生产审计报告](docs/PRODUCTION_AUDIT_REPORT.md) | 包含 100 个问题和 50 个功能的全面安全审计 | | [贡献指南](CONTRIBUTING.md) | 如何为项目做出贡献 | | [安全策略](SECURITY.md) | 如何报告漏洞 | | [许可证](LICENSE) | Apache 2.0 许可证 | ## 🧪 测试 ### 运行测试 ``` go test ./... -v ``` ### 运行测试并查看覆盖率 ``` go test ./... -cover -coverprofile=coverage.out go tool cover -html=coverage.out ``` ### 测试 WAF 规则 ``` # 测试 XSS 阻断 curl -X GET "http://localhost:8082/api/test?input=" # 测试 SQL 注入阻断 curl -X GET "http://localhost:8082/api/test?id=1' OR '1'='1" ``` ## 📊 监控 ### 指标端点 `GET /api/metrics` 返回全面的系统指标: ``` { "total_requests": 25432, "blocked_requests": 327, "uptime_seconds": 172800, "memory_alloc_mb": 65, "memory_sys_mb": 128, "goroutines": 23, "rate_limiter": { "active_visitors": 15, "blacklist_count": 5, "whitelist_count": 10, "rate_limited_ips": 3, "requests_per_minute": 200, "shards": 256, "total_allowed": 25105, "total_blocked": 327 }, "threat_intel": { "total_threats": 2041, "feeds_active": 4, "last_update": "2026-02-01T14:30:00Z", "blocked_today": 127, "high_risk_count": 1205 }, "geoip": { "blocked_countries": 3, "total_lookups": 15432, "cache_hits": 12890, "cache_misses": 2542 }, "webhooks": { "active_webhooks": 2, "alerts_sent_today": 15, "alerts_failed": 1 } } ``` ### WebSocket 实时更新 连接到 `ws://localhost:8082/api/ws?token=` 以获取实时统计更新。 ## 🤝 贡献 1. Fork 本仓库 2. 创建您的功能分支(`git checkout -b feature/amazing-feature`) 3. 提交您的更改(`git commit -m 'Add amazing feature'`) 4. 推送到分支(`git push origin feature/amazing-feature`) 5. 打开一个 Pull Request 有关详细指南,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## 📜 许可证 本项目基于 Apache 2.0 许可证授权 - 详情请参阅 [LICENSE](LICENSE) 文件。 ## 🙏 致谢 - [Coraza WAF](https://coraza.io) - 核心 WAF 引擎 - [OWASP CRS](https://coreruleset.org) - 核心规则集灵感来源 - [ModSecurity](https://modsecurity.org) - SecLang 规则语言 ## 📞 支持 - **问题**:[GitHub Issues](https://github.com/Abhishek-yadav04/Obsidian/issues) - **讨论**:[GitHub Discussions](https://github.com/Abhishek-yadav04/Obsidian/discussions) - **安全**:请参阅 [SECURITY.md](SECURITY.md) 以报告漏洞 ## 👨‍💻 作者

Abhishek Yadav

Abhishek Yadav
计算机科学专业学生

GitHub

⭐ 如果您觉得有帮助,请给本仓库一个 Star!

用 ❤️ 为网络安全社区打造

首先,非常感谢 [Juan Pablo Tosso](https://twitter.com/jptosso) 启动这个项目,并在 Coraza 周围建立了一个了不起的社区! 今天我们拥有许多优秀的贡献者,没有你们我们无法做到这一切! 由 [contrib.rocks](https://contrib.rocks) 制作。
标签:API网关安全, AppImage, CISA项目, Coraza, CSRF防护, EVTX分析, GeoIP封禁, Go语言, HMAC-SHA256, IP 地址批量处理, JWT认证, MaxMind, OWASP Top 10防护, PE 加载器, PostgreSQL, RBAC权限控制, Slack集成, WAF, Webhook告警, WebSocket监控, Web应用防火墙, WSL, 企业级安全, 入侵防御, 反向代理, 威胁情报, 子域名突变, 安全监控, 安全管理工具, 实时分析, 应用层防护, 开发者工具, 恶意IP检测, 搜索引擎查询, 日志审计, 测试用例, 程序破解, 网络安全, 自动化扫描, 请求拦截, 隐私保护, 零信任架构, 高并发