Salta ai contenuti

Firewall

Restorm intercetta tutte le proprie chiamate in uscita — quelle dell’utente come quelle delle sue dipendenze — e blocca per impostazione predefinita ciò che non è noto.

Il vantaggio è diretto: una libreria di terze parti che telefonasse a casa non lo fa senza che l’utente lo veda.

La richiesta di autorizzazione del firewall: l’origine bloccata, il livello di intercettazione e il frame chiamante, e i pulsanti Allow / Deny

In quest’ordine:

  1. Le porte di infrastruttura interne di Restorm sul loopback locale sono autorizzate.
  2. La whitelist autorizza.
  3. Le origini derivate dal progetto autorizzano — vale a dire gli URL delle richieste, dopo la sostituzione delle {{variables}} su tutti gli ambienti, ricalcolate a ogni modifica dell’albero.
  4. La blacklist rifiuta.
  5. Altrimenti viene mostrata una richiesta di autorizzazione.

Il punto 3 è ciò che rende il firewall vivibile: importare una specifica di trecento operazioni non genera trecento richieste, dato che tutti quegli URL provengono dal progetto.

Mostra:

  • l’origine interessata, nella forma https://exemple.com:443;
  • il livello che ha intercettato la chiamata;
  • un indizio sul chiamante — l’URL che ha dato origine alla chiamata, oppure una traccia dello stack che nomina il pacchetto npm o il file responsabile;
  • due pulsanti Allow e Deny.

Ogni decisione viene persistita nell’elenco corrispondente.

In assenza di una finestra disponibile, oppure dopo 60 secondi senza risposta, la chiamata viene rifiutata automaticamente.

Visualizza ▸ Firewall apre una scheda unica: due elenchi, Whitelist (N) e Blacklist (N), con i loro contatori in diretta, una riga per regola con il suo cestino, più un campo di aggiunta nel formato schema://host:porta.

Un pulsante Test outbound to google.com permette di verificare che il meccanismo funzioni.

Una regola è una tripletta schema + host + porta. Tutti e tre sono significativi: http non è https, e :443 non è :8443.

Aggiungendo un’origine a un elenco, questa viene rimossa automaticamente dall’altro.

Sono accettati due caratteri jolly:

FormaEffetto
https://api.exemple.com:*Tutte le porte di quell’host
https://*.exemple.comI sottodomini di un solo livello

https://*.exemple.com non copre né exemple.com nudo né a.b.exemple.com.

  • Le chiamate dell’aggiornamento automatico sono esentate: non generano richieste.
  • Ai thread di esecuzione e ai processi figli viene rifiutato ogni traffico HTTP, senza possibilità di richiesta né di sovrascrittura tramite la whitelist. È una postura difensiva voluta.
  • Non esiste un interruttore generale per disattivare il firewall. È deliberato.

Ogni chiamata intercettata compare nella console, con il suo verdetto, sotto forma di comando shell copiabile.

Sei strumenti, tutti in edizione Community: open_firewall, firewall_list_rules, firewall_allow, firewall_deny, firewall_list_pending_prompts e firewall_resolve_prompt. Ogni modifica fatta da un agente viene registrata a fini di audit. Si veda Strumenti MCP.