Herramientas y scripts de IA
Comprobación de apps de Streamlit y Gradio
Revisa tus apps de Streamlit y Gradio antes de desplegarlas: secrets.toml que git incluiría en un commit, entradas de usuario mostradas como HTML o ejecutadas con eval, rutas de Gradio que exponen el disco, claves de API en el código y lanzamientos públicos sin inicio de sesión.
Qué recibes: 1 archivo · 58.3 KB · ZIP
Ver opciones de compraDescripción del producto
st.markdown(f"<h2>Notes for {name}</h2>", unsafe_allow_html=True) inserta en tu página como HTML todo lo que escriba un visitante, y demo.launch(share=True, allowed_paths=["/"]) permite que cualquiera con el enlace descargue cualquier archivo de tu equipo. Esta skill encuentra esos errores y los demás errores de Streamlit y Gradio que se indican abajo antes de que despliegues o compartas la app, y te explica cómo corregir cada uno.
Tu agente ejecuta un escáner sobre los archivos Python de tu app (los que importan streamlit o gradio), .streamlit/config.toml, secrets.toml y los Dockerfiles, Procfiles, archivos compose y scripts de shell que inician la app. Sigue los valores que vienen de los visitantes (widgets de entrada, parámetros de consulta, archivos subidos, el nombre del usuario que ha iniciado sesión, las claves del session state que rellenan los widgets y el historial del chat, los argumentos de texto libre de los handlers de eventos de Gradio) a través de asignaciones y hasta las funciones auxiliares del propio archivo. Trata los valores de Dropdown, Radio, Slider y Number de Gradio como opciones fijas, reconoce correcciones como html.escape, shlex.quote, ast.literal_eval y búsquedas en una tabla constante, sigue alias de importación como import subprocess as sp, lee tus archivos .gitignore para ver si secrets.toml queda fuera de git y conoce los valores por defecto de Streamlit y Gradio (protección XSRF y CORS activada, st.html saneado, Gradio enlazado a 127.0.0.1 con CORS estricto y saneamiento del chat activado). Nunca ejecuta tu app ni se conecta a ningún sitio. Devuelve BLOCK, REVIEW o NOT FLAGGED, con el archivo, la línea, el motivo y una alternativa más segura. Los secretos nunca se muestran.
Qué revisa
BLOCK (corregir antes de publicar)
- D01: un secrets.toml con claves o contraseñas reales que ninguna regla de .gitignore cubre
- D02: entrada del visitante mostrada como HTML con unsafe_allow_html=True, st.html con JavaScript permitido, st.iframe o el obsoleto st.components.v1.html
- D03: allowed_paths, set_static_paths o GRADIO_ALLOWED_PATHS de Gradio que incluyen la raíz del disco, la raíz de una unidad, la carpeta de inicio, /home, /Users, /root o /etc
- D04: entrada del visitante que llega a eval, exec, compile, un comando de shell o un cargador al estilo pickle (pickle, joblib, dill, cloudpickle, pandas.read_pickle y similares)
- D05: claves de API y secretos escritos en el código de la app, config.toml o archivos de arranque (formatos de claves de proveedores, valores de aspecto aleatorio con nombres de secreto, contraseñas en URLs de bases de datos)
REVIEW (revisar antes del lanzamiento)
- D11: launch(share=True) o server_name="0.0.0.0" de Gradio sin auth ni auth_dependency
- D12: protección XSRF de Streamlit desactivada, o su cookie enviada entre sitios
- D13: enableCORS = false en Streamlit o strict_cors=False en Gradio
- D14: subidas sin límite de tipo (st.file_uploader sin type, entradas de archivo de Gradio sin file_types)
- D15: detalles de errores mostrados a los visitantes (show_error=True en Gradio, un showErrorDetails explícito de Streamlit con full o stacktrace)
- D16: sanitize_html=False de Gradio en un Chatbot o Markdown
- D17: st.secrets, un secreto o una sección entera de él, o el entorno del proceso (incluido el getenv de una clave) mostrados en la página
- D18: contraseñas de inicio de sesión escritas en el código (tuplas auth de Gradio, comprobaciones password == "...", variables de contraseña)
Qué incluye
- El escáner (Python 3.9+, solo biblioteca estándar)
- Una guía de reglas con el motivo, una alternativa más segura y un enlace a la documentación oficial para cada regla
- Un proyecto de ejemplo arriesgado y otro seguro, y el informe real que genera el escáner sobre el arriesgado
Limitaciones
Lee cada archivo por separado y sigue los valores en orden lineal: no sigue los valores pasados entre módulos, guardados en atributos de clase o construidos en ramas condicionales, no sigue los handlers de Gradio definidos como métodos de clase o mediante functools.partial, y no revisa los archivos Python que no importan ni Streamlit ni Gradio. La salida de gr.HTML de Gradio no se revisa, porque Gradio no documenta si la sanea. Lee los archivos .gitignore pero no el historial de git, así que no detecta un secrets.toml confirmado antes de empezar a ignorarse. Los ajustes hechos en un panel de hosting (Streamlit Community Cloud, Hugging Face Spaces) no son visibles. debug=True de Gradio no se reporta, porque solo mantiene el script en ejecución. NOT FLAGGED no es una garantía.
Contenido
Un archivo ZIP con 22 archivos: SKILL.md, el escáner en scripts/ (8 archivos de Python), references/rules.md (cada regla con su motivo y una alternativa más segura) y examples/ (11 archivos de ejemplo más report.md, la salida real del escáner sobre el ejemplo arriesgado).
Cómo usarlo: Es una skill para agentes: una carpeta con un archivo SKILL.md y scripts de Python que puede ejecutar un agente de programación con IA como Claude Code, Cursor o Codex CLI. Descomprímela en la carpeta de skills de tu agente (para Claude Code: ~/.claude/skills/) y luego pide a tu agente que revise tu proyecto. Los scripts también funcionan por sí solos con Python 3.9 o posterior, sin nada que instalar. Solo leen tus archivos: sin acceso a la red y sin enviar nada a ningún sitio.
Qué recibes
1 archivo · 58.3 KB
- streamlit-gradio-app-check-1.0.0.zipZIP · 58.3 KB
Herramientas y scripts de IA
Comprobación de apps de Streamlit y Gradio
Revisa tus apps de Streamlit y Gradio antes de desplegarlas: secrets.toml que git incluiría en un commit, entradas de usuario mostradas como HTML o ejecutadas con eval, rutas de Gradio que exponen el disco, claves de API en el código y lanzamientos públicos sin inicio de sesión.
Getly abrió los archivos subidos y no encontró nada que impida abrirlos. No es un análisis antivirus ni una valoración de calidad.
Etiquetas
Preguntas frecuentes
¿Tengo acceso al instante?
Sí. Es un producto digital: puedes descargarlo justo después del pago, directamente desde tu biblioteca.
¿Puedo usarlo en proyectos comerciales?
Sí. Se permite el uso comercial: úsalo en tu propio negocio y en cosas que vendas. No puedes revender ni redistribuir el archivo en sí.
¿Cuál es vuestra política de reembolso?
Puedes pedir un reembolso dentro de 30 días. Si algo no va bien, solicítalo desde tu pedido y el equipo de Getly lo revisa.
¿Qué formatos y tamaños de archivo recibiré?
Descargarás 1 archivo - ZIP - 58.3 KB en total.
¿Recibo actualizaciones gratis?
Sí: cuando el vendedor publica una versión nueva, puedes volver a descargar los archivos más recientes desde tu biblioteca sin coste extra. Mira el registro de cambios para ver las últimas actualizaciones.
Precio
$5.00



