MarkItDown
Seguridad de MarkItDown: limita acceso, adquisición y conversión
Aplica la frontera de E/S documentada mediante API específicas, trabajadores aislados y configuración explícita de complementos y servicios externos.
Qué aprenderás
- Una API específica no sustituye el aislamiento del sistema operativo.
- Complementos y servicios externos requieren decisiones distintas.
- Las instrucciones del documento siguen siendo contenido no confiable.
Antes de empezar
- Conocimientos básicos de Python y terminal
- Un documento no sensible con contenido verificable
Utiliza la lista del capítulo para explicar y verificar esta parte de una ingesta documental.
Conclusiones clave
- Una API específica no sustituye el aislamiento del sistema operativo.
- Complementos y servicios externos requieren decisiones distintas.
- Las instrucciones del documento siguen siendo contenido no confiable.
Elige la entrada adecuada para tu aplicación
El README advierte que la conversión realiza E/S con los permisos del proceso actual. El método general convert acepta varios tipos de entrada. Si solo permites archivos locales, resuelve una ruta autorizada y utiliza convert_local; si tu aplicación controla los bytes, entrega un flujo binario a convert_stream.
Una API más específica aclara la adquisición prevista, pero no es un aislamiento del sistema operativo. Un proceso con privilegios excesivos conserva esos permisos. Limita las rutas montadas y la cuenta del trabajador, y valida las rutas aportadas por usuarios antes de llamar a cualquier conversión local.
Haz explícitas las opciones adicionales
Los complementos de terceros están desactivados por defecto. Activarlos incorpora código capaz de registrar conversores y ejecutarse dentro del proceso. Revisa el complemento y conserva su versión en el registro de despliegue; instalar una dependencia de formato no equivale a autorizar un complemento arbitrario.
La conversión en la nube y las descripciones asistidas pueden enviar contenido documental a servicios externos. Un producto exclusivamente local debe expresar y aplicar esa decisión en su configuración. Si admite entradas remotas, implementa las políticas de URL, redirecciones y red en la capa de adquisición, sin asumir que el conversor las proporciona.
Procesa archivos no confiables con recursos acotados
El análisis documental puede consumir mucha CPU y memoria, y los archivos comprimidos pueden contener numerosos elementos anidados. Aplica límites fuera de la biblioteca y conserva la clase original de fallo en los registros. Registra identificadores, versiones y resúmenes de error en lugar de almacenar documentos sensibles completos por defecto.
El Markdown generado es información derivada, no una instrucción confiable para un agente posterior. Conserva su identidad de origen y úsalo como contenido documental. Un archivo que pide revelar secretos o ejecutar comandos no adquiere autoridad por haber atravesado un conversor.
Pasos de implementación
- 1
Define la adquisición permitida y selecciona su API.
- 2
Limita cuenta, montajes y presupuesto de recursos.
- 3
Registra complementos y servicios externos habilitados.
- 4
Conserva la procedencia y oculta datos sensibles en registros.
Ejemplo para copiar
from pathlib import Path
from markitdown import MarkItDown
root = Path("/input").resolve()
candidate = (root / "example.docx").resolve()
if not candidate.is_relative_to(root):
raise ValueError("Input must stay inside the assigned directory")
# Montaje de entrada inmutable para impedir cambios de ruta posteriores.
result = MarkItDown(enable_plugins=False).convert_local(candidate)Preguntas frecuentes
¿convert_stream hace seguro cualquier análisis?
No. Permite controlar los bytes de entrada, pero analizadores, complementos, recursos y permisos todavía necesitan límites.
¿Markdown puede contener inyección de instrucciones?
Sí. Trátalo como documentación de origen, no como instrucciones privilegiadas para modelos o herramientas.
Fuentes
- Documentación fijadaFuente verificada 2026-09-07
- Despachador centralFuente verificada 2026-09-07
- Conversor de textoFuente verificada 2026-09-07
- Exportaciones públicasFuente verificada 2026-09-07