FLUXXWAVVEE/cyber-scam-detection-backend-deploy
GitHub: FLUXXWAVVEE/cyber-scam-detection-backend-deploy
网络诈骗检测平台的后端基础框架,提供结构化 API 层、请求验证、可观测性和安全上传等基础设施,为后续 AI 检测与持久化组件预留了清晰的集成接口。
Stars: 0 | Forks: 0
# 网络诈骗检测与防范平台 - 后端基础
这是**网络诈骗检测与防范平台**的后端基础层,使用 **FastAPI** 实现,具备结构化日志、类型安全、输入验证以及清晰的接口边界,为未来的 AI 和持久化组件做好准备。
## 1. 当前阶段范围
本阶段构建**核心后端基础和 API 层**。它不执行实际的诈骗检测、OCR、数据库存储或用户认证。所有计划内但尚未实现的功能都会返回明确的未配置状态码和标准 JSON 错误。不捏造任何虚假的智能或伪造数据库记录。
### 已实现的功能:
- **FastAPI 核心应用**:干净利落的启动/生命周期处理程序、集中式的 Pydantic 设置加载以及版本化路由。
- **API 路由**:规范化路由前缀 `/api/v1` 以及临时的 `/api` 兼容性包装器(带有弃用 Warning 标头)。
- **请求验证**:独立的端点用于验证文本主体长度(`analyses/text`)以及文件大小/MIME/魔数约束(`analyses/screenshot`)。
- **可观测性**:通过 `X-Request-ID` 实现的唯一 UUID 请求追踪,该 ID 会在日志上下文、响应标头和错误主体中进行传递。结构化 JSON 日志排除了私有 PII 数据。
- **安全的图片上传**:通过验证魔数(PNG、JPEG、WebP)来验证图片类型,并使用上下文管理临时文件,在 `finally` 代码块中自动删除。
- **标准化错误系统**:自定义异常映射器返回统一的 payload 结构:`{error: {code, message, request_id, details}}`。
- **系统诊断**:真实客观的 `/health` 和 `/ready` 探针,准确告知缺少哪些 AI/数据库组件。
- **无 Mock 单元测试**:在自包含环境中运行 24 个单元测试,验证验证规则、CORS 规则、文件结构和编排器边界。
### 延迟实现的功能:
- **EasyOCR 文本提取**:抽象于 `OCRServiceInterface` 之后。
- **spaCy NLP 分词器**:抽象于 `NLPServiceInterface` 之后。
- **Scikit-learn 逻辑回归模型**:抽象于 `MLDetectionServiceInterface` 之后。
- **VirusTotal 和 WHOIS 信誉检查**:抽象于 `ThreatIntelligenceServiceInterface` 之后。
- **PostgreSQL 数据库存储**:抽象于 `InMemoryAnalysisRepository` 之后(仅供开发使用的临时内存缓存)。
- **会话认证 / 用户资料管理**:返回 `AUTH_NOT_IMPLEMENTED`。
- **反馈持久化**:返回 `PERSISTENCE_NOT_IMPLEMENTED`。
## 2. 项目文件结构
```
backend/
├── app/
│ ├── __init__.py
│ ├── main.py - Application instantiation, middlewares, CORS, and exception mappings
│ ├── core/
│ │ ├── config.py - Pydantic settings manager Loading env variables
│ │ ├── logging.py - Structured JSON logging formatter with PII redactions
│ │ ├── exceptions.py - Application exceptions catalog
│ │ ├── error_codes.py - Stable machine-readable error codes constants
│ │ └── security.py - Core sanitizers and URL checkers
│ ├── api/
│ │ ├── router.py - Router aggregator for canonical v1 and compatibility endpoints
│ │ └── v1/
│ │ ├── health.py - Liveness and readiness endpoints
│ │ ├── analyses.py - Separate text and screenshot submission handlers
│ │ ├── auth.py - Register/login stub endpoints (501 Not Implemented)
│ │ ├── feedback.py - User feedback stub endpoints (501 Not Implemented)
│ │ ├── users.py - User profile stub endpoints (501 Not Implemented)
│ │ └── admin.py - Admin dashboard stub endpoints (501 Not Implemented)
│ ├── schemas/
│ │ ├── common.py - Enums for InputTypes, AnalysisStatus, and ComponentStatusState
│ │ ├── error.py - Standard error schema models
│ │ ├── analysis.py - Analysis request models and report response models
│ │ ├── auth.py - Login/register request models
│ │ ├── feedback.py - Feedback submission schemas
│ │ └── user.py - User details response models
│ ├── services/
│ │ ├── orchestrator.py - Coordinates the pipeline evaluation
│ │ ├── in_memory_repository.py - Thread-safe cache caching transient scan sessions
│ │ ├── interfaces/ - Abstract class definitions for OCR, NLP, ML, Threat, Risk
│ │ └── unavailable/ - Concrete stubs returning unimplemented status codes
│ ├── middleware/
│ │ ├── request_id.py - Intercepts X-Request-ID headers or generates trace UUIDs
│ │ ├── request_logging.py - Logs HTTP method, path, status, and duration latency
│ │ └── security_headers.py - Browser security headers (nosniff, clickjacking prevention)
│ ├── utils/
│ │ ├── file_validation.py - Verifies MIME headers, size bounds, and magic bytes
│ │ └── temp_files.py - Managed temporary file context managers
│ └── dependencies/
│ └── services.py - Dependency injections for pipelines
├── tests/ - Test suite
│ ├── conftest.py
│ ├── test_health.py
│ ├── test_analysis_validation.py
│ ├── test_upload_validation.py
│ ├── test_errors.py
│ ├── test_request_id.py
│ ├── test_cors.py
│ └── test_orchestrator_contract.py
├── .env.example - Template for environment properties
├── .gitignore
├── requirements.txt - Package dependencies list
├── pyproject.toml - Pytest configuration settings
└── README.md - Documentation walkthrough
```
## 3. 安装与本地运行设置
### Windows 开发设置 (PowerShell / VS Code)
1. **创建虚拟环境**:
python -m venv .venv
2. **激活环境**:
.venv\Scripts\Activate.ps1
3. **安装依赖项**:
pip install -r requirements.txt
4. **设置环境变量**:
在根目录下创建 `.env` 文件(基于 `.env.example`):
Copy-Item .env.example .env
5. **启动本地开发服务器**:
uvicorn app.main:app --reload --port 8000
- API 服务器:`http://localhost:8000`
- 交互式 OpenAPI Swagger 文档:`http://localhost:8000/docs`
- 就绪健康检查:`http://localhost:8000/api/v1/ready`
6. **运行自动化单元测试**:
pytest -v
## 4. 安全与隐私控制
- **魔数签名检查**:图片上传会检查魔数,以阻止伪装的二进制文件。
- **自动资源清理**:截图临时文件在请求执行完成后会自动删除(使用 `try/finally` 上下文包装器)。
- **PII 泄露保护**:日志会脱敏映射到密码、token、内容主体和卡号条目的值。
- **可追溯性**:服务器生成的唯一请求 ID 会被注入到日志和标头响应中,以实现清晰的调试。
- **安全的点击劫持防护**:点击劫持防护标头会自动应用于非文档端点。
## 5. 未来 AI 和数据库集成点
- **PostgreSQL 持久化**:将 `app/dependencies/services.py` 中的 `InMemoryAnalysisRepository` 替换为使用 SQLAlchemy 模型的真实数据库驱动。
- **EasyOCR 钩子**:更新 `dependencies/services.py` 中的 `ocr_service`,实例化一个符合 `OCRServiceInterface` 的模型执行类。
- **spaCy / Scikit-learn 推理**:使用匹配的服务接口,将您的 ML/NLP 向量化分类器模型注入到编排器 pipeline 中。
标签:Apex, AV绕过, FastAPI, OCR, Syscall, Web开发, 后端框架, 机器学习, 测试用例, 网络防骗, 逆向工具