Prácticas recomendadas de API y seguridad
Defensa de seguridad básica para servicios HTTP de Python.
Cómo usar esta lista
- Revísala durante las revisiones de diseño y antes de los despliegues en producción.
- Convierte los fallos repetidos en políticas automatizadas de CI siempre que sea posible.
- Vuelve a revisarla después de las actualizaciones menores del framework.
Transporte
- HTTPS en producción.
- Termina TLS en el proxy con conjuntos de cifrado modernos.
- Establece HSTS para los clientes del navegador.
Autenticación
- Autentica cada ruta protegida.
- Usa tokens de acceso de corta duración y rotación de refresco.
- Hashea contraseñas con argon2 o bcrypt.
Entrada
- Valida y sanitiza en el límite.
- Parametriza SQL; evita la composición de cadenas de shell.
- Limita los tamaños de las cargas útiles en el proxy y la aplicación.
Operaciones
- Ejecuta pip-audit o uv audit en CI.
- Almacena secretos en bóvedas, no en git.
- Registra eventos de seguridad sin valores sensibles.
Preguntas frecuentes
¿Cuándo debo adoptar la línea base de seguridad de API?
Úsala cuando los patrones y las compensaciones de esta página coincidan con tu API o el límite de datos.
¿Cuál es el principal error de producción con la línea base de seguridad de API?
Omitir la validación, los tiempos de espera o los contratos de error explícitos en el borde HTTP.
¿Cómo pruebo la línea base de seguridad de API?
Usa el cliente de prueba del framework, anula las dependencias y verifica el estado más la forma JSON.
¿Funciona la línea base de seguridad de API con Python 3.14?
Sí, los ejemplos se dirigen a Python 3.14 con versiones de framework fijadas del pie de página de la pila.
¿Cómo se relaciona la línea base de seguridad de API con Pydantic 2?
Valida y serializa en los límites; mantén los servicios funcionando con objetos de dominio tipados.
¿Sincrónico o asincrónico?
Prefiere rutas asincrónicas cuando las E/S dominan; mantén el trabajo de CPU pequeño o descárgalo a trabajadores.
¿Dónde debe vivir la lógica de negocio?
Controladores delgados; los servicios poseen las reglas; los repositorios poseen las consultas.
¿Cómo documento las API?
Publica documentación de OpenAPI o esquemas que coincidan con los modelos de respuesta en el código.
¿Cómo manejo el versionado?
Versionado explícito de URL o encabezado con ventanas de depreciación; evita roturas silenciosas.
¿Qué debo leer a continuación?
Sigue los enlaces Relacionados para la siguiente capa de profundidad en esta sección.
¿Cómo me mantengo seguro?
Autentica a los llamadores, autoriza por recurso, limita la velocidad y nunca registres secretos.
¿Primer paso para el rendimiento?
Mide la latencia de la base de datos y de los sistemas externos antes de cambiar de framework.
Relacionado
- Conceptos básicos de diseño de API - Convenciones REST
- OAuth2 y JWT - Flujos de tokens
- Gestión de secretos - Entornos y bóvedas
- Validación de entrada e inyección - Defensas
Versiones de la pila: Esta página se escribió para Python 3.14.0 (estable 3.14, mantenimiento 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+ y uv 0.6+.