saathvik-codes/fraudshield
GitHub: saathvik-codes/fraudshield
一个基于 Spring Boot 3 的银行转账后端,内置可组合规则的实时风险评分欺诈检测引擎。
Stars: 0 | Forks: 0
# FraudShield — 欺诈检测银行后端
银行转账后端,配备基于规则的欺诈引擎,可对每一笔交易进行实时风险评分,并在资金转移前对其进行拦截、标记或完成处理。
## 技术栈
- Spring Boot 3 / Java 21
- PostgreSQL — 账户、收款人、交易
- MongoDB — 欺诈评估日志(每笔交易的风险评分 + 触发的规则)
## 欺诈规则(可组合风险评分,0.0–1.0)
- **LARGE_AMOUNT** — 转账金额达到或超过配置的阈值
- **INSUFFICIENT_FUNDS** — 金额超过账户余额(自动拦截)
- **VELOCITY_BREACH** — 在滚动时间窗口内同一账户的转账次数过多
- **NEW_BENEFICIARY_LARGE_AMOUNT** — 向从未使用过的收款人进行大额转账
- **ACCOUNT_FROZEN** — 账户已被冻结(自动拦截)
评分 ≥ 0.75 → `BLOCKED`(余额未变动);≥ 0.4 → `FLAGGED`(余额未变动,暂留待审核);低于 0.4 → `COMPLETED`(已扣除余额)。
## 运行
```
docker-compose up -d
mvn spring-boot:run
```
Swagger UI:`http://localhost:8110/swagger-ui.html`
## 流程
1. `POST /api/v1/accounts` — 创建带有初始余额的账户
2. `POST /api/v1/accounts/{id}/beneficiaries` — 注册已知收款人
3. `POST /api/v1/transactions/transfer` — 尝试转账;欺诈引擎会进行评估并返回最终状态 + 风险评分
4. `GET /api/v1/transactions/account/{accountId}` — 交易历史记录
## 前端
`frontend/` 是一个基于 Next.js + Tailwind 的交易监控器:创建演示账户、发送转账,并观察每一笔交易显示在信息流中,并带有颜色编码的风险评分条(绿色已完成,琥珀色已标记,红色已拦截)。
```
cd frontend
cp .env.local.example .env.local
npm install
npm run dev # http://localhost:3000
```
标签:Spring Boot, 反欺诈检测, 域名枚举, 测试用例, 请求拦截, 金融科技