Pular para o conteúdo

Firewall

O Restorm interceta todas as suas chamadas de saída — as suas e as das suas dependências — e bloqueia por predefinição aquilo que não é conhecido.

O interesse é direto: uma biblioteca de terceiros que decida telefonar para casa não o consegue fazer sem que você o veja.

O pedido de autorização da firewall: a origem bloqueada, a camada de interceção e o contexto que faz a chamada, e os botões Allow / Deny

Por esta ordem:

  1. As portas de infraestrutura internas do Restorm no loopback local são autorizadas.
  2. A lista branca autoriza.
  3. As origens derivadas do seu projeto autorizam — isto é, os URL dos seus pedidos, depois da substituição das {{variables}} em todos os ambientes, recalculadas a cada modificação da árvore.
  4. A lista negra recusa.
  5. Caso contrário, é apresentado um pedido de autorização.

O ponto 3 é o que torna a firewall utilizável no dia a dia: importar uma especificação de trezentas operações não desencadeia trezentos pedidos, uma vez que todos esses URL vêm do seu projeto.

Apresenta:

  • a origem em questão, sob a forma https://exemple.com:443;
  • a camada que intercetou a chamada;
  • uma pista sobre quem chama — o URL iniciador, ou um rasto de pilha que nomeia o pacote npm ou o ficheiro responsável;
  • dois botões Allow e Deny.

Cada decisão é persistida na lista correspondente.

Sem janela disponível, ou após 60 segundos sem resposta, a chamada é recusada automaticamente.

Ver ▸ Firewall abre um separador único: duas listas, Whitelist (N) e Blacklist (N), com os seus contadores em direto, uma linha por regra e o respetivo ícone de eliminação, e ainda um campo de adição no formato scheme://host:port.

Um botão Test outbound to google.com permite verificar que o mecanismo funciona.

Uma regra é um trio esquema + host + porta. Os três são significativos: http não é https, e :443 não é :8443.

Adicionar uma origem a uma lista remove-a automaticamente da outra.

São aceites dois caracteres universais:

FormaEfeito
https://api.exemple.com:*Todas as portas deste host
https://*.exemple.comOs subdomínios de um único nível

https://*.exemple.com não cobre nem exemple.com isolado, nem a.b.exemple.com.

  • As chamadas da atualização automática estão isentas: não desencadeiam nenhum pedido.
  • Aos fios de execução e processos filhos é recusado todo o tráfego HTTP, sem possibilidade de pedido nem de exceção pela lista branca. Postura defensiva deliberada.
  • Não existe nenhum interruptor geral para desativar a firewall. É deliberado.

Cada chamada intercetada aparece na consola, com o seu veredicto, sob a forma de comando de shell copiável.

Seis ferramentas, todas na edição Community: open_firewall, firewall_list_rules, firewall_allow, firewall_deny, firewall_list_pending_prompts e firewall_resolve_prompt. Qualquer modificação feita por um agente é auditada. Consulte Ferramentas MCP.