hashlib e integridad de dependencias en Python
Cómo usar SHA-256 correctamente para integridad de datos, por qué nunca para contraseñas, y cómo proteger la cadena de dependencias con hashes verificados.
Cómo usar SHA-256 correctamente para integridad de datos, por qué nunca para contraseñas, y cómo proteger la cadena de dependencias con hashes verificados.
Cómo combinar Pydantic, parámetros vinculados y verificación de rutas para bloquear las vulnerabilidades más comunes en aplicaciones Python.
Variables de entorno, python-dotenv, el módulo secrets y compare_digest para manejar credenciales sin exponerlas en git ni en el código.
Por qué eval/exec son vectores de ejecución remota, por qué restringir globals no funciona, y cómo ast.literal_eval() resuelve el caso común de forma segura.
Uso de `Popen` como API de bajo nivel para streaming de output, timeouts, polling no bloqueante y terminación controlada de procesos hijos.
Por qué `shell=True` introduce inyección de comandos con input externo y cómo reemplazarlo con listas, `glob`, `Popen` encadenados y `shlex.split`.
Cómo usar subprocess.run con lista de argumentos, capture_output, text, check y timeout para ejecutar procesos externos de forma segura y robusta.
Cómo usar `sys.argv`, `stdin`/`stdout`/`stderr` y códigos de salida para construir herramientas CLI robustas y compatibles con pipelines.
Construye CLIs con subcomandos, validación de tipos y prompts interactivos usando `click` y su capa de alto nivel `typer`.
Construcción de CLIs completas con ArgumentParser: flags, posicionales, tipos, choices, nargs y subcomandos, sin dependencias externas.