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开发, 双因素认证, 数据可视化, 逆向工具, 零信任安全