Skip to content
梁兆本 edited this page Apr 14, 2026 · 2 revisions

🧾 发票OCR管理系统

Python Version Flask Version Version License Docker

一个基于Flask框架开发的智能发票管理系统,支持发票图片上传与OCR识别,提供发票信息管理、数据导出及统计分析等功能。系统采用腾讯云OCR API进行发票文字识别,实现发票信息的智能提取与处理。

✨ 功能特点

  • 📤 发票图片和PDF文件上传与预览
  • ✏️ 支持手动创建发票,无需上传图片
  • 🔍 基于腾讯云OCR API的发票文字识别
  • 📄 支持直接识别PDF发票第一页
  • 💾 发票数据结构化处理与存储
  • 📋 发票列表展示与多维度排序
  • 🔎 发票详情查看与编辑
  • 📁 项目分类管理功能
  • 👁️ 发票图片与PDF预览功能
  • 📊 发票数据导出(CSV、Excel格式)
  • 📈 发票统计分析与图表展示
  • 📱 响应式网页设计,适配多种设备
  • ⏱️ 定时任务自动清理过期文件
  • 🔐 用户登录认证(bcrypt加密 + 仅密码登录)
  • 🛡️ 两步验证(TOTP,兼容Google Authenticator)
  • 🔒 账户锁定保护(5次失败锁定15分钟 + 倒计时)
  • 🚫 CSRF全局防护 + 请求限流
  • 📝 安全审计日志

🔄 最近更新

最新版本 v1.4 (2026.04.14)

🔐 用户认证与安全体系

  • ✅ 新增完整的用户登录认证系统(Flask-Login + bcrypt)
  • ✅ 新增首次启动密码设置流程,无需用户名,仅需设置密码
  • ✅ 新增 TOTP 两步验证(MFA),兼容 Google Authenticator
  • ✅ 新增账户锁定机制:5次密码错误锁定15分钟,锁定期间禁用表单+倒计时
  • ✅ 新增 Flask-Limiter 请求限流(GET 60/min, POST 20/min)
  • ✅ 新增全局 CSRF 防护(Flask-WTF CSRFProtect)
  • ✅ 新增会话安全配置(HttpOnly + Secure + SameSite=Lax)
  • ✅ 新增安全审计日志(data/logs/security.log

🛡️ CLI 管理工具

  • ✅ 新增 flask unlock-admin 应急解锁命令
  • ✅ 新增 flask reset-account 账户初始化重置命令
  • ✅ 加固 flask create-admin 命令,限制仅无用户时可执行

🔒 安全增强

  • ✅ 密码存储升级为 bcrypt 算法(rounds=12),兼容旧 pbkdf2 自动迁移
  • ✅ Settings 页面 API 密钥脱敏显示(password 类型 + 显示/隐藏切换)
  • ✅ 所有表单和 AJAX 请求添加 CSRF Token
  • ✅ 新增 429 限流友好中文提示页面
  • ✅ 登录页锁定状态:禁用密码输入 + 实时倒计时 + 自动刷新解锁

📁 项目结构调整

  • ✅ 新增 app/auth.py 认证蓝图(登录/设置/MFA/密码管理)
  • ✅ 新增 app/templates/auth/ 认证模板目录(8个模板文件)
  • ✅ 新增 app/templates/errors/429.html 限流错误页面
  • ✅ 新增 data/logs/ 安全审计日志目录

查看完整的更新历史请参考 Changelog

📖 详细文档

👤 作者

📝 许可证

MIT License

Clone this wiki locally