Finalmente qualcosa di tangibile su cui potersi basare per fare quanto meno delle supposizioni (sì, perché comunque i parametri che la mail di Yahoo! utilizza è un dettaglio implementativo interno e non è detto che debba necessariamente avere un significato evidente e tangibile per chiunque guardi quella lista di parametri).
Non dirò nulla di nuovo, poiché (come avevo già anticipato in una precedente risposta, mettendo peraltro il link a Wikipedia) si tratta banalmente di codifiche in Base64.
Scomponendo l'URL originale vediamo da quali parti è composto.
Ad esempio, la parte che segue il dominio "mail.yahoo.com", ossia /d/folders/488, sembra indicare che si tratta di una cartella (folder) avente ID=488.
Poi iniziano i parametri di una classica query string. Ad esempio, c'è la parte .lang=it-IT che veicola probabilmente la lingua/cultura da usare per l'interfaccia.
Poi abbiamo questo: guce_referrer=aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS8. Dal nome "guce_referrer" si direbbe trattarsi di una informazione relativa a dove si è provenuti per approdare al sito (ma è solo una ipotesi, solo Yahoo! lo sa).
Come predetto, il valore invece è solo una codifica Base64: se andiamo su qualsiasi sito in grado di codificare/decodificare quella stringa, copiamo la parte del valore del parametro (aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS8) dentro la casella e facciamo il "Decode", otterremo banalmente questo: https://www.google.com/. In breve, questo parametro veicola un nome di dominio, solo espresso con uno standard che lo rende più breve e facilmente rappresentabile in un URL.
La parte che segue, quel "guce_referrer_sig" dal prefisso "sig" potrebbe essere una signature (firma): si tratta di un valore Base64 che indicherà un pacchetto di dati binario utilizzato dal sito per qualche scopo che possiamo ipotizzare ma senza certezza.
In conclusione, questo URL non contiene nulla di offuscato, di nascosto, di criptato o di segreto: è solo un indirizzo parlante che veicola parametri necessari al sito per svolgere le proprie funzioni usando un formato più consono per esprimere sia dati binari sia stringhe con caratteri speciali che richiederebbero una lunghezza maggiore se riportati direttamente (i caratteri come "." oppure "/" o gli spazi dovrebbero essere tutti alternativamente codificati nella forma %NN dove NN è il codice del carattere... meglio usare Base64, è più compatto).
Questo anche per segnalare, visto lo scaldarsi degli animi in seguito, che già dalla mia prima risposta avevo detto e pubblicato tutti i link necessari a spiegare di cosa si trattava, e che sarebbe bastato prendersi il tempo di approfondire un attimo il contenuto della risposta per arrivare alla soluzione confrontandola con il contenuto dell'URL di esempio, senza necessariamente prendersela o incapponirsi come è stato fatto in seguito.
Per completezza, se si vuole adottare questo standard di codifica, in ASP.NET è semplice e immediato: esistono metodi già pronti per convertire un testo da/a Base64 (specificatamente Convert.ToBase64String e Convert.FromBase64String).
Ciao!![]()