186. Security Best Practices

Snippet 1: Input Validation with Regular Expressions

Copy

import re

# Validate email input
def is_valid_email(email):
    pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
    return bool(re.match(pattern, email))

# Test email validation
email = "test@example.com"
print("Valid Email" if is_valid_email(email) else "Invalid Email")

Snippet 2: Preventing SQL Injection with Parameterized Queries

Copy

import sqlite3

# Use parameterized queries to prevent SQL injection
conn = sqlite3.connect('secure.db')
cursor = conn.cursor()

# Create a table
cursor.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, username TEXT, password TEXT)')
conn.commit()

# Insert data securely
username = "admin'; DROP TABLE users;--"
password = "securepassword"
cursor.execute('INSERT INTO users (username, password) VALUES (?, ?)', (username, password))
conn.commit()

# Verify insertion
cursor.execute('SELECT * FROM users')
print(cursor.fetchall())

conn.close()

Snippet 3: Hashing Passwords with bcrypt

Copy


Snippet 4: Secure Random Number Generation

Copy


Snippet 5: Sanitizing HTML Input with Bleach

Copy


Snippet 6: Limiting Password Attempts

Copy


Snippet 7: Using HTTPS with Flask

Copy


Snippet 8: Validating JSON Input with Marshmallow

Copy


Snippet 9: Setting Secure Cookies in Flask

Copy


Snippet 10: Rate Limiting with Flask-Limiter

Copy

Last updated