Escáner de Open API
Analiza especificaciones OpenAPI para identificar riesgos de seguridad
Uso
Analizar desde URL
# 1. Descargar la especificación
spec_content = fetch_openapi_from_url("https://api.example.com/openapi.json")
# 2. Analizar
report = analyze_openapi(spec_content)
print(f"API: {report['title']}")Analizar desde archivo local
# Leer archivo
spec_content = fetch_openapi_from_local_file("mi-api.yaml")
# Analizar (verificando que no sea error)
if not spec_content.startswith("Error:"):
report = analyze_openapi(spec_content)
print(json.dumps(report, indent=2))Detección de riesgos
El análisis identifica:
- Endpoints sin seguridad - Endpoints sin requisitos de autenticación
- Datos sensibles - Detecta palabras como
password,token,secreten endpoints sin protección - Contenido inválido - Rechaza HTML y especificaciones mal formadas
Ejemplo de resultado:
{
"title": "Pet Store API",
"version": "1.0.0",
"endpoints_analysis": [
{
"path": "/pets",
"method": "POST",
"has_security": false,
"risks": ["No security requirements defined."]
}
]
}Herramientas
-
analyze_openapi
- Entrada: Contenido de la especificación (JSON/YAML)
- Salida: Reporte de análisis de seguridad
-
fetch_openapi_from_url
- Entrada: URL a la especificación
- Salida: Contenido de la especificación
- Detecta automáticamente Swagger UI y extrae la URL real
-
fetch_openapi_from_local_file
- Entrada: Nombre del archivo
- Salida: Contenido del archivo