Skip to content

Security: by3Team/By3-System

SECURITY.md

Security Policy

支持的版本

版本 支持状态
最新 main 分支 ✅ 支持

报告漏洞

如果您发现安全漏洞,请不要通过公开 Issue 报告。

报告方式

请通过以下方式私下报告:

  1. GitHub Security Advisories(推荐):在仓库页面点击 "Security" → "Report a vulnerability"
  2. 邮件:发送至项目维护者邮箱(请在 README 中查找联系方式)

报告内容

请尽可能包含以下信息:

  • 漏洞类型(如 SQL 注入、XSS、越权访问等)
  • 影响范围和潜在危害
  • 复现步骤(含代码片段、请求示例等)
  • 可能的修复建议(如有)

响应流程

  1. 确认收到 — 我们会在 48 小时内确认收到报告
  2. 评估影响 — 分析漏洞的严重性和影响范围
  3. 制定修复方案 — 开发并测试修复补丁
  4. 发布修复 — 合入修复代码并发布安全更新
  5. 公开披露 — 在修复发布后适当时间公开漏洞详情

安全措施

已实施的安全机制

  • 认证:JWT 无状态认证,Token 支持刷新和黑名单
  • 授权:基于 Permission 的细粒度权限控制(非角色直接控制)
  • 输入验证:FluentValidation 声明式 DTO 校验
  • SQL 注入防护:EF Core 参数化查询,无原生 SQL 拼接
  • XSS 防护:前端使用 DOMPurify 净化 HTML 输出
  • 敏感数据保护:手机号 AES 加密存储,审计日志字段自动脱敏
  • 接口幂等性Idempotency-Key 请求头防重复提交
  • 限流:固定窗口限流,登录接口单独限制防暴力破解
  • 安全响应头:SecurityHeadersMiddleware 添加标准安全头
  • 容器安全:非 root 用户运行,只读文件系统,no-new-privileges

安全扫描工具

项目集成了以下安全扫描:

  • Semgrep — 静态代码分析(pre-commit hook)
  • Trivy — 依赖漏洞扫描(CI 自动运行)
  • npm audit — 前端依赖审计
  • SonarLint — IDE 实时代码质量检查(推荐安装)

本地安全扫描

# Linux/macOS/Git Bash
./scripts/security-scan.sh

# Windows
scripts\security-scan.bat

安全最佳实践

部署时

  • 生产环境必须使用强密钥(JWT Key ≥ 32 字节,DataProtection Key ≥ 32 字节)
  • 生产环境敏感配置建议通过环境变量覆盖 appsettings.json 中的默认值
  • 启用 HTTPS 并配置 HSTS
  • 定期更新依赖包
  • 数据库使用强密码并限制网络访问

开发时

  • 不要在代码中硬编码任何密钥或密码
  • 用户输入必须验证和参数化
  • 新增 v-html、文件读写、反序列化等操作需额外安全审查
  • 提交前运行安全扫描脚本

致谢

感谢所有报告安全问题的安全研究人员和贡献者。

There aren't any published security advisories