Melhores Práticas de Segurança
Autenticação e Autorização
Implementando Autenticação Segura
import secrets
import hashlib
def generate_secure_token():
return secrets.token_hex(16)
def hash_password(password):
return hashlib.sha256(password.encode()).hexdigest()
Validação de Entrada
Prevenção de Ataques de Injeção
import re
def validate_input(user_input):
## Sanitização e validação de entrada
pattern = re.compile(r'^[a-zA-Z0-9_-]+$')
if not pattern.match(user_input):
raise ValueError("Entrada inválida")
Segurança de Rede
graph TD
A[Segurança de Rede] --> B[HTTPS]
A --> C[Firewall]
A --> D[Limite de Taxa]
A --> E[Listagem Branca de IPs]
Configuração SSL/TLS
import ssl
def create_ssl_context():
context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
context.load_cert_chain(certfile='server.crt', keyfile='server.key')
return context
Lista de Verificação de Segurança
| Categoria |
Recomendação |
Implementação |
| Autenticação |
Use autenticação baseada em tokens |
JWT, OAuth |
| Criptografia |
Use HTTPS |
SSL/TLS |
| Manipulação de Entrada |
Valide e sanitize |
Regex, lista branca |
| Controle de Acesso |
Implemente privilégios mínimos |
Acesso baseado em roles |
Limite de Taxa e Proteção
from functools import wraps
from time import time
def rate_limit(max_requests=100, window=3600):
requests = {}
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
current_time = time()
## Implemente a lógica de limite de taxa
return func(*args, **kwargs)
return wrapper
return decorator
Registros e Monitoramento
Prática de Registro Segura
import logging
def setup_secure_logging():
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
filename='/var/log/server_security.log'
)
logger = logging.getLogger(__name__)
return logger
Princípios Chave de Segurança
- Princípio do Menor Privilégio
- Defesa em Profundidade
- Auditorias de Segurança Regulares
- Mantenha os Sistemas Atualizados
- Implemente Registros Completos
Técnicas de Proteção Avançadas
- Utilize Firewall de Aplicação Web (WAF)
- Implemente políticas CORS
- Varredura regular de vulnerabilidades de segurança
- Utilize gerenciamento de variáveis de ambiente
- Implemente autenticação multifator
Seguindo essas melhores práticas de segurança, os desenvolvedores podem reduzir significativamente o risco de violações de segurança potenciais e proteger seus servidores HTTP Python de vulnerabilidades comuns.