mahfuz-env/NirvishaAI

GitHub: mahfuz-env/NirvishaAI

一款使用 AI 以孟加拉语解释 Web 漏洞的安全扫描器后端,为孟加拉语开发者提供自动化的域名安全检测与报告生成服务。

Stars: 0 | Forks: 0

# NirvishaAI — 后端 NirvishaAI 会扫描您验证过的域名以查找安全漏洞,使用 AI 用孟加拉语解释每个问题,并生成可下载的 PDF/Markdown 报告。 ## 功能 - **并行扫描** — 通过 goroutines 并发运行 5 项安全检查 - **SSL/TLS 检查** — 证书有效性、过期时间、HTTPS 重定向 - **Security headers** — CSP、HSTS、X-Frame-Options、Referrer-Policy、X-Content-Type-Options - **Cookie security** — HttpOnly、Secure、SameSite 标志检测 - **CORS misconfiguration** — 通配符与 origin 反射检测 - **Open redirect** — 测试 9 个常见的重定向参数 - **AI 分析** — 通过 OpenRouter 提供孟加拉语解释(4 个备用模型) - **域名验证** — 通过 DNS TXT 记录或基于文件的所有权证明 - **Rate limiting** — 通过 Redis 限制每个 IP 每天 5 次扫描 - **PDF + Markdown 报告** — 可下载的扫描报告 - **实时进度** — Server-Sent Events (SSE) 流 ## 技术栈 | 层级 | 技术 | |---|---| | 语言 | Go 1.22+ | | 路由 | chi v5 | | 缓存 | Redis(基于 TTL,无永久存储) | | AI | OpenRouter API | | PDF | gofpdf(纯 Go) | ## 项目结构 ``` backend/ ├── main.go # Server entry point, routing ├── config/ │ └── config.go # Env loading ├── store/ │ └── redis.go # Redis client, key schema, TTL helpers ├── handlers/ │ ├── verify.go # Domain verification (DNS + file) │ ├── scan.go # Scan start, SSE progress, rate limiting │ ├── report.go # PDF + Markdown download │ └── helpers.go # JSON response helpers ├── scanner/ │ ├── types.go # Shared types, score calculator │ ├── runner.go # Parallel goroutine orchestrator │ ├── ssl.go # SSL/TLS + HTTPS redirect │ ├── headers.go # Security headers │ ├── cookies.go # Cookie flags │ ├── cors.go # CORS misconfiguration │ └── redirect.go # Open redirect ├── ai/ │ └── openrouter.go # OpenRouter client, fallback chain, Bengali prompt └── report/ ├── pdf.go # PDF generation └── markdown.go # Markdown generation ``` ## API Endpoint ``` POST /api/verify/dns — Start DNS TXT verification POST /api/verify/file — Check file-based verification GET /api/verify/status — Get verification status (?domain=example.com) POST /api/scan/start — Start a scan (verified domain required) GET /api/scan/status/:id — Real-time SSE stream GET /api/scan/result/:id — Full scan result JSON POST /api/report/pdf/:id — Download PDF report POST /api/report/md/:id — Download Markdown report GET /health — Health check ``` ## 快速开始 ### 前置条件 - Go 1.22+ - Redis ### 安装与运行 ``` git clone https://github.com/your-repo/nirvishaai-backend.git cd nirvishaai-backend cp .env.example .env # 填写你的 OPENROUTER_API_KEY go mod download go run main.go ``` 服务启动于 `http://localhost:8080` ### 环境变量 ``` OPENROUTER_API_KEY= # Required — get from openrouter.ai OPENROUTER_MODEL=google/gemini-flash-1.5 OPENROUTER_FALLBACK_MODEL_1=openai/gpt-4o-mini OPENROUTER_FALLBACK_MODEL_2=anthropic/claude-3-haiku OPENROUTER_FALLBACK_MODEL_3=meta-llama/llama-3.1-8b-instruct:free OPENROUTER_FALLBACK_MODEL_4=mistralai/mistral-7b-instruct:free REDIS_URL=redis://localhost:6379 PORT=8080 ALLOWED_ORIGINS=http://localhost:3000 SCAN_TIMEOUT=30 MAX_CONCURRENT_SCANS=10 ``` ## Redis Key Schema 所有数据均为临时数据——无永久存储。 ``` scan:{id} → scan result JSON TTL: 6 hours scan:progress:{id} → scan status string TTL: 6 hours verify:{domain} → verification record TTL: 24 hours ratelimit:{ip} → request count TTL: 24 hours ``` ## 安全与法律声明 - 在进行任何扫描之前,**必须验证**域名所有权 - 仅执行**被动的、非侵入性的** HTTP 检查——不进行 payload 注入 - 扫描结果**不会永久存储** - 限制为每个 IP 每天最多 **5 次扫描** ## 许可证 MIT — 查看 [LICENSE](LICENSE)
标签:AI安全分析, CORS检测, Go语言, SSL/TLS检测, Web安全扫描器, 安全报告生成, 插件系统, 搜索引擎查询, 程序破解