rohithreddy-cyber/Secure-Login-System-
GitHub: rohithreddy-cyber/Secure-Login-System-
基于 Flask 的企业级安全登录与身份验证系统,按照 OWASP 最佳实践提供密码哈希、双因素认证、防暴力破解等完整的认证安全功能。
Stars: 0 | Forks: 0
# SecureAuth - 安全登录与身份验证系统
SecureAuth 是一个企业级、生产就绪的安全登录与用户身份验证 Web 应用程序,使用 **Python、Flask、SQLite、Bootstrap 5、HTML5、CSS3 和 JavaScript** 构建。
严格按照 **OWASP 身份验证最佳实践** 设计,SecureAuth 能够防范常见的 Web 漏洞(SQL Injection、Brute Force、Session Hijacking、Password Cracking、CSRF)。
## 🔒 核心安全功能
- **Password Hashing (bcrypt)**:密码使用 salt rounds >= 12 的 bcrypt 进行哈希处理。绝不记录或存储明文密码。
- **SQL Injection 防御**:100% 的 SQLite 数据库交互均使用参数化预编译查询(`?` 绑定)。
- **CSRF 防护**:表单提交 token 会在所有状态更改的 endpoint 上验证请求的真实性。
- **Session 管理**:安全、HTTPOnly、SameSite 的 Flask session cookie,并在受保护的 dashboard 和 profile 路由上明确要求登录。
- **账户锁定与 Brute-Force 防御**:15 分钟内连续 5 次登录失败后,将临时锁定账户。
- **双因素认证 (2FA)**:符合 RFC 6238 标准的 TOTP,支持验证器应用(Google Authenticator、Authy、Microsoft Authenticator)并提供一次性的紧急备份恢复码。
- **输入验证**:对全名、用户名、邮箱和密码复杂度进行客户端和服务器端双重验证。
- **安全审计日志**:记录成功登录、失败尝试、2FA 激活、密码更新和登出操作,并包含 IP 地址和浏览器客户端详细信息。
## 🎨 设计系统
- **UI 框架**:Bootstrap 5 + 自定义 CSS
- **调色板**:企业级白色/浅灰色搭配专业蓝色点缀(`#0f62fe`)
- **排版与布局**:现代无衬线字体、圆角卡片、响应式移动端友好导航栏、实时密码强度指示器。
## 🛠️ 项目结构
```
SecureAuth/
├── app.py # Flask Application & Route Handlers
├── requirements.txt # Python Package Dependencies
├── database/
│ └── users.db # SQLite Database (Auto-initialized)
├── models/
│ └── user.py # User Model & Flask-Login Manager Integration
├── utils/
│ ├── database.py # Parameterized SQLite Database Utility
│ ├── security.py # Bcrypt Hashing, TOTP 2FA & Lockout Logic
│ ├── validators.py # Input & Form Validation Helpers
│ ├── logger.py # Security Audit Logging Utility
│ └── auth.py # Auth Helpers
├── static/
│ ├── css/style.css # Enterprise Blue Theme Stylesheet
│ └── js/main.js # Password meter, show/hide password, timers
└── templates/
├── base.html # Base Navbar, Footer & CSRF Template
├── login.html # Login Form
├── register.html # Signup Form with Password Gauge
├── dashboard.html # Protected User Dashboard
├── profile.html # Profile & 2FA Setup Management
├── verify_otp.html # 2FA / Backup Code Authentication Step
├── forgot_password.html# Password Recovery Request
├── reset_password.html # Password Reset Form
└── 404.html # Error Page
```
## 🚀 快速入门指南
### 1. 安装
```
# Clone 或导航到项目目录
cd "Secure Login System"
# 安装 dependencies
python -m pip install -r requirements.txt
```
### 2. 运行应用
```
python app.py
```
打开浏览器并访问 `http://127.0.0.1:5000`。
## 🧪 测试安全功能
- **SQL Injection**:尝试在登录或注册字段中输入 `' OR '1'='1`。系统会安全地处理参数并拒绝未经授权的访问。
- **Brute Force 锁定**:连续 5 次输入无效密码,即可触发 15 分钟的账户锁定。
- **2FA 测试**:在 Profile 标签页中启用双因素身份验证,使用 Google Authenticator 或 Authy 扫描生成的二维码,并验证安全的 6 位 TOTP 登录。
标签:Flask, SQLite, Syscall, Web开发, 双因素认证, 数据可视化, 逆向工具, 零信任安全