-
CSRF Protection (Flask-WTF) - WIP: Protects against Cross-Site Request Forgery (CSRF) attacks by generating and verifying tokens for each form submission.
-
Rate Limiting with Flask Limiter: Limits the number of requests a client can make in a given timeframe, guarding against abuse and denial-of-service attacks.
-
Password Hashing with Bcrypt: Securely hashes user passwords before storage to protect user credentials from exposure in the event of a data breach.
-
Session Management: Manages user sessions securely to handle user authentication and authorization.
-
Content Security Policy (CSP) with Flask-Talisman: Implements CSP to prevent Cross-Site Scripting (XSS) attacks by specifying allowed content sources.
-
SQLAlchemy and Database Constraints: Uses SQLAlchemy and defines constraints (e.g., unique usernames) to prevent data integrity issues and protect the database.
-
File Upload Validation: Validates file uploads by checking file extensions and enforcing a size limit to prevent malicious file uploads and DoS attacks.
-
Session Timeout: Sets a session lifetime, logging users out after 30 minutes to enhance security by limiting session exposure.
-
Session Authentication: Authenticates user sessions by verifying session data to ensure the user is logged in.
-
Route Authorization with
admin_required: Implements route-level authorization, requiring the 'admin' role to access the admin panel. -
Database Query Sanitization: Protects against SQL injection attacks by escaping and quoting parameters in database queries using SQLAlchemy's query builder.
-
Error Handling: Implements error handling for common errors such as 404 and 500, enhancing the user experience and avoiding sensitive information exposure.
-
HTML Injection: Vulnerable to HTML Injection, allowing an attacker to inject malicious code into web pages.
-
XSS (Cross-Site Scripting): Susceptible to Cross-Site Scripting attacks, where untrusted input can be executed as code in a user's browser.
-
SSTI (Server-Side Template Injection): Prone to Server-Side Template Injection, enabling attackers to manipulate server-side templates.
-
SQL Injection: Vulnerable to SQL Injection, which allows attackers to execute arbitrary SQL queries on the database.
-
Information Disclosure: Leaks sensitive information or error messages that could aid attackers.
-
Command Injection: Exposes vulnerabilities to Command Injection, enabling malicious execution of arbitrary commands.
-
Brute Force: Lacks protection against Brute Force attacks on user accounts and authentication mechanisms.
-
Deserialization: Vulnerable to Deserialization attacks, which can lead to remote code execution.
-
Broken Authentication: Suffers from Broken Authentication, making it easier for attackers to compromise user accounts.
-
DoS (Denial of Service): Susceptible to Denial of Service attacks, impacting service availability.
-
File Upload: Allows file uploads without proper validation, posing a risk for malicious file uploads and potential attacks.