Secure Fetch

Fetch seguro para prevenir acesso a recursos locais

Documentação

Secure Fetch

Este projeto implementa uma ferramenta segura de busca de URLs usando FastMCP.

Pré-requisitos

  • Python 3.7+
  • uv (instalador de pacotes e gerenciador de ambientes Python)

Instalação

  1. Instale o uv, caso ainda não tenha feito:

pip install uv

  1. Crie um novo ambiente virtual e instale as dependências:

uv venv source .venv/bin/activate uv pip install fastmcp requests

Uso

  1. Defina a variável de ambiente allowlist (opcional):

export SECURE_FETCH_ALLOWLIST="example.com,trusted-domain.org"

  1. Execute o script:

uv run main.py

Recursos

  • Busca URLs de forma segura
  • Resolve domínios para IPs
  • Verifica IPs privados/internos
  • Lida com redirecionamentos (até 3)
  • Suporta métodos HTTP e cabeçalhos personalizados
  • Usa uma allowlist para domínios/IPs confiáveis

Considerações de Segurança

  • A ferramenta impede o acesso a IPs privados/internos, a menos que seja explicitamente permitido
  • Apenas esquemas HTTP e HTTPS são permitidos
  • O SNI é configurado para corresponder ao hostname em conexões HTTPS

Exemplo de Uso

Assim que o script estiver em execução, você pode usar a função fetch_url para buscar URLs com segurança. A função retornará um dicionário contendo o código de status, o corpo da resposta e o comprimento do conteúdo.

Nota

Esta ferramenta foi projetada para busca segura de URLs. Sempre revise e entenda o código antes de usá-lo em seu ambiente.