一、园区企业入驻管理系统 - 用户登录验证模块技术文档
1. 项目概述
本 Demo 旨在为园区管理员提供一个安全、可靠的后台管理登录入口。系统实现了完整的用户身份验证流程,并针对安全性进行了增强设计(如验证码、密码加密、登录限流),确保园区入驻数据的管理安全性。
1.1 可视化
登录界面:
后台登录界面:

2. 核心逻辑设计
2.1 登录验证流程
系统采用前后端分离的验证逻辑:
- 验证码校验:前端提交登录请求前,需先通过图片验证码校验,防止自动化脚本攻击。
- 账号锁定检查:后端在验证密码前,会检查该账号是否处于"失败限流"锁定期。
- 身份匹配:通过加盐(Salt)哈希算法对用户输入的密码进行加密,并与数据库中的密文进行比对。
- 状态保持 :验证通过后,服务器利用
Session机制在服务端存储用户信息。
2.2 安全机制实现
- 后端加密 :
使用SHA-256算法配合自定义盐值(Salt)进行散列,避免明文存储风险。
Passwordhash=SHA256(RawPassword+Salt)Password_{hash} = SHA256(RawPassword + Salt)Passwordhash=SHA256(RawPassword+Salt) - 失败限流逻辑 :
系统维护一个全局内存字典login_attempts:- 触发条件 :同一用户名连续输入错误密码 3 次。
- 限制措施 :锁定该账户 300 秒(5 分钟)。
- 逻辑实现 :每次尝试登录前对比
current_time与lock_until时间戳。
2.3 权限控制
使用自定义装饰器 @login_required 对后台路由进行拦截。若 Session 中未检测到登录凭证,系统将强制重定向至登录页,防止越权访问。
3. 功能模块说明
| 模块名称 | 功能描述 | 核心技术点 |
|---|---|---|
| 验证码生成 | 动态生成包含干扰线和噪点的 PNG 图片 | PIL (Pillow) 图形库 |
| 登录接口 | 处理验证码校验、账号比对、限流锁定 | Flask Session / Hashlib |
| 后台控制台 | 展示园区入驻统计数据及企业申请列表 | Jinja2 模板渲染 |
| 入驻审核 | 模拟管理员对企业申请进行实时通过操作 | RESTful API (POST) |
4. 环境部署与运行
4.1 环境依赖
- Python 版本:3.12
- 核心依赖库 :
Flask: 轻量级 Web 框架Pillow: 验证码图片处理waitress: 生产级服务器容器
4.2 启动方式
- 安装依赖:
pip install flask pillow waitress - 运行程序:
python app.py - 访问地址:
http://localhost:3389 - 测试账号 :
- 用户名 :
admin - 密码 :
password123
- 用户名 :
4.3 阿里云公网部署(内网穿透)
体验地址:http://47.113.202.238:3389/
- 账号:
admin - 密码:
password123