Arriva il fratello del comando curl: trurl permette di gestire e modificare gli URL. Come funziona

L'autore del comando curl presenta trurl, programma da riga di comando che verifica la struttura degli URL permettendo di gestire e modificare gli indirizzi in modo molto semplice. Anche da script.

Il comando curl ha recentemente compiuto 25 anni. Sembra ieri quando tanti di noi iniziarono a utilizzarlo.
In un altro articolo abbiamo visto cos’è curl e presentato una guida pratica per descriverne l’utilità.

Basato su riga di comando, curl è un programma che serve per effettuare richieste HTTP e HTTPS (ma anche con altri protocolli come FTP, FTPS, SMTP e così via) e scaricare contenuti da server remoti.

Il suo autore, Daniel Stenberg, racconta che i primi anni nessuno conosceva curl e che c’erano pochi utenti a servirsene. Nel 1998 gli utenti erano pochi; nel 2010 erano già centinaia di milioni.
Non è dato sapere quante utenti o installazioni di libcurl (libreria C open source che fornisce un’interfaccia semplice per le comunicazioni di rete) ci siano oggi a livello mondiale. È tuttavia facile stimare che il codice di curl sia operativo su più di 10 miliardi di installazioni semplicemente basandosi sul fatto che ci sono 7 miliardi di smartphone e 1 miliardo di tablet in circolazione: ognuno di essi esegue almeno un’istanza di curl.

trurl è il fratello di curl: cos’è e come funziona

A inizio aprile 2023 Stenberg ha pubblicato online un nuovo progetto dal nome trurl.
Disponibile su GitHub, trurl fa derivare il suo nome dal comando tr disponibile sui sistemi Unix-like.

Il comando tr, abbreviazione di translate o di transliterate, consente di modificare i caratteri di un file di testo sostituendoli con altri, di eliminarli o trasformarli in qualcos’altro. Il comando tr funziona leggendo l’input presentato dall’utente o da un file specificato quindi applicando le regole di traduzione dei caratteri così come indicate.

Per molti gli URL risultano difficili da analizzare: trurl è software di dimensioni ultracompatte che può essere anch’esso usato da riga di comando per analizzare e manipolare gli URL. Uno strumento che si rivela quindi utilissimo per chi sviluppa e utilizza script di vario genere.

Esempi concreti dei possibili utilizzi di trurl sono disponibili nella nota di presentazione pubblicata dall’autore.

Tra gli utilizzi più creativi, ad esempio, c’è quello seguente che permette di aggiungere uno o più parametri come querystring all’URL indicato:

trurl --url "https://curl.se?name=hello" --append query=search=string

Oppure quello successivo, che estrae tutti i nomi a dominio da una lista di indirizzi salvati sotto forma di file di testo:

trurl --url-file url-list.txt --get '{host}'

O, ancora, l’esempio riportato di seguito in cui trurl viene sfruttato per ottenere tutte le parti di un URL in formato JSON:

trurl "https://fake.host/hello#frag" --set user=::nomeutente:: --json

Quest’ultimo è un comando utile anche a scopo didattico per comprendere la struttura degli URL ed estrapolare tutte le parti che la caratterizzano.
Nell’esempio, trurl restituisce il seguente output JSON:

[
  {
    "url": "https://%3a%3amoo%3a%3a@fake.host/hello#frag",
    "scheme": "https",
    "user": "::nomeutente::",
    "host": "fake.host",
    "port": "443",
    "path": "/hello",
    "fragment": "frag"
  }
]

Abbiamo visto quanto il fenomeno del cybersquatting sia sempre più diffuso e come negli attacchi phishing si utilizzino URL studiati per trarre in inganno gli utenti. Utilizzando trurl è possibile sviluppare in pochi secondi un’applicazione o uno script che verificano la bontà di un indirizzo.

Ti consigliamo anche

Link copiato negli appunti