Secure Fetch

Obtención segura para prevenir el acceso a recursos locales

Documentación

Secure Fetch

Este proyecto implementa una herramienta de obtención de URLs segura usando FastMCP.

Requisitos previos

  • Python 3.7+
  • uv (instalador de paquetes y gestor de entornos de Python)

Instalación

  1. Instala uv si aún no lo has hecho:
pip install uv
  1. Crea un nuevo entorno virtual e instala las dependencias:
uv venv
source .venv/bin/activate
uv pip install fastmcp requests

Uso

  1. Establece la variable de entorno de lista blanca (opcional):
export SECURE_FETCH_ALLOWLIST="example.com,trusted-domain.org"
  1. Ejecuta el script:
uv run main.py

Características

  • Obtiene URLs de forma segura
  • Resuelve dominios a IPs
  • Comprueba IPs privadas/internas
  • Maneja redirecciones (hasta 3)
  • Soporta métodos y cabeceras HTTP personalizados
  • Utiliza una lista blanca para dominios/IPs de confianza

Consideraciones de seguridad

  • La herramienta impide el acceso a IPs privadas/internas a menos que se permita explícitamente
  • Solo se permiten los esquemas HTTP y HTTPS
  • SNI se establece para que coincida con el nombre de host en conexiones HTTPS

Ejemplo de uso

Una vez que el script esté en ejecución, puedes usar la función fetch_url para obtener URLs de forma segura. La función devolverá un diccionario que contiene el código de estado, el cuerpo de la respuesta y la longitud del contenido.

Nota

Esta herramienta está diseñada para la obtención segura de URLs. Siempre revisa y comprende el código antes de usarlo en tu entorno.