Elido
10 min di letturaFunzionalità

Scadenza dei link e link autodistruttivi spiegati

Cosa fanno la scadenza dei link e i link autodistruttivi, quando usare regole per data, numero di clic e utilizzo singolo, e cosa restituisce l'edge nel momento in cui un link scade

Marius Voß
DevRel · edge infra
Un link corto con un conto alla rovescia che passa da uno stato attivo a uno scaduto, con l'edge che restituisce 410 Gone

La scadenza del link è una regola che ritira automaticamente un link corto una volta soddisfatta una condizione, affinché l'URL smetta di funzionare in un momento che scegli tu piuttosto che vivere per sempre. Un link autodistruttivo è la stessa idea sintonizzata su un singolo utilizzo: muore dopo il primo clic. Entrambi sono intenzionali. Non stai riparando un link interrotto, stai costruendo uno che dovrebbe fermarsi.

Quell'intento è tutta la distinzione che vale la pena tenere presente. Un link che si rompe perché la sua destinazione è scomparsa è marcito, e il rot è un problema che rilevi e ripari. Abbiamo scritto il playbook operativo per quello in strategia di prevenzione del link rot. La scadenza è la mossa opposta: sei tu a decidere che il link dovrebbe oscurarsi, in una data, dopo N clic, o dopo esattamente uno. Questo post tratta quando ogni modalità si adatta, cosa restituisce effettivamente l'edge quando viene colpito un link scaduto, come la scadenza si combina con i gate password e le regole geo, e le avvertenze sui tempi che mordono se tratti un link monouso come un confine di sicurezza rigido.

Quando ci ricorri? Offerte a tempo limitato che non dovrebbero continuare a convertire dopo la finestra promozionale. Accesso limitato nel tempo a un documento condiviso o un'esportazione di dati. Link monouso per una credenziale o un file sensibile. Minimizzazione dei dati per conformità, dove un link che concede l'accesso non dovrebbe sopravvivere alla ragione per cui è stato creato. Link per eventi che dovrebbero morire il giorno dopo l'evento affinché un codice QR obsoleto su un poster non mandi le persone al programma dell'anno scorso.

La scadenza ha tre forme, e scegliere quella giusta è la maggior parte della decisione.

La prima è per data e ora. Imposti un timestamp di scadenza, idealmente con un fuso orario, e il link si risolve normalmente fino a quel momento, poi si ferma. Questo è l'URL in scadenza che la maggior parte delle persone intende: un link temporaneo per una campagna che finisce a mezzanotte, una condivisione di documenti che dovrebbe chiudersi alla fine di uno sprint, un link a tempo limitato per un replay di webinar che vuoi aperto solo per una settimana.

La seconda è per conteggio di clic. Il link funziona per le prime N richieste, poi scade. Imposta N a 100 e il centounesimo visitatore ottiene la risposta di scadenza. Questo è utile per giveaway a numero limitato, inviti beta con un numero fisso di posti, o qualsiasi caso in cui il limite è "quante persone lo hanno usato" piuttosto che "che giorno è".

La terza è l'utilizzo singolo, che è il conteggio di clic con N impostato a uno. Questo è il link autodistruttivo. Si apre una volta ed è morto ad ogni clic successivo. Le copie inoltrate sono inutili, gli screenshot dell'URL sono inutili, e un link trapelato in un log è già esaurito se il destinatario previsto lo ha aperto per primo.

Tre modalità di scadenza affiancate: per data e ora con una scadenza su calendario, per conteggio di clic che mostra N usi poi ferma, e utilizzo singolo che mostra un singolo clic consentito prima che il link muoia

Le modalità non sono mutuamente esclusive in linea di principio, anche se in pratica di solito vuoi una regola chiara per link. Un link che scade in una data e dopo un conteggio di clic va bene, ma sii esplicito su quale condizione ti aspetti che scatti per prima, perché la risposta cambia il modo in cui ragioni sulla durata del link. Se non riesci a dire in una frase perché un dato link scade, probabilmente hai scelto la modalità sbagliata.

Un link corto attivo risponde con un 302 verso la sua destinazione. Uno scaduto deve rispondere con qualcosa di terminale, e la scelta del codice di stato non è cosmetica.

La risposta più pulita è 410 Gone. Secondo l'RFC 9110, la specifica della semantica HTTP, 410 significa che la risorsa è intenzionalmente e permanentemente non disponibile, e il server non ha un indirizzo di inoltro. Questo è esattamente ciò che è un link scaduto. Il riferimento MDN per 410 Gone nota che, a differenza del 404, un 410 è un segnale deliberato che la risorsa è esistita e ora è sparita per sempre, un suggerimento che i crawler rispettano eliminando l'URL dal loro indice più velocemente. Per un link di campagna scaduto che vuoi che gli indicizzatori dimentichino, 410 è il codice onesto.

A volte preferisci non ammettere che il link sia mai esistito. Un 404 Not Found è la mossa lì. Tratta lo slug scaduto come se non fosse mai stato un link reale, che è la postura più discreta per i link monouso verso materiale sensibile dove anche confermare che l'URL era una volta valido fa trapelare qualcosa. Sia 404 che 410 sono risposte terminali valide; la differenza è cosa sei disposto a divulgare.

Su un dominio brandizzato hai una terza opzione che è più amichevole per gli esseri umani: una pagina di scadenza brandizzata. Invece di un semplice codice di stato, l'edge serve una piccola pagina HTML che dice che il link è chiuso e, idealmente, punta a un'alternativa attuale. Questa è la scelta giusta per i link di marketing che una persona reale potrebbe cliccare settimane dopo, da un asset stampato o un'email vecchia. Un 410-con-body è ancora conforme agli standard: puoi restituire lo stato 410 e servire una pagina esplicativa nella stessa risposta. Il motivo per cui questo conta di più su un dominio personalizzato è che la pagina di scadenza porta poi il tuo brand piuttosto che un errore generico, il che ammorbidisce il vicolo cieco.

Diagramma decisionale dell'edge: un link attivo restituisce 302 verso la destinazione, mentre lo stesso link dopo la scadenza restituisce 410 Gone o una pagina di scadenza brandizzata

La decisione avviene nello stesso hop che altrimenti emetterebbe il redirect, che è lo stesso punto architetturale che abbiamo fatto sugli smart link: il posto più economico per prendere una decisione di instradamento o di gate è il processo che sta già scrivendo la risposta. La scadenza è solo un altro controllo in quel percorso, valutato prima che il redirect venga costruito. Un link scaduto costa all'edge un confronto extra, non una chiamata di servizio extra.

Casi d'uso per pubblico#

Team diversi ricorrono alla scadenza per ragioni diverse, e la modalità che si adatta segue dalla ragione.

I team di marketing vogliono la scadenza basata su data la maggior parte delle volte. Un link di flash sale che continua a convertire dopo la fine della vendita è un ticket di supporto in attesa di accadere, perché il prezzo sulla landing page non corrisponde più all'offerta nel link. Impostare una scadenza che corrisponde alla finestra della campagna mantiene il link onesto. Il pattern più amichevole, piuttosto che un hard 410, è scadere l'offerta live e reindirizzare lo slug a una pagina "questa offerta è terminata, ecco quella attuale", che è la mossa di sunset dal playbook del link rot applicata di proposito. Per l'ampia toolbox della campagna, Elido per marketers tratta come la scadenza si affianca ai template UTM e al tracciamento delle conversioni.

I team legali e di conformità si preoccupano della minimizzazione dei dati. Il principio di minimizzazione dei dati del GDPR nell'Articolo 5(1)(c) dice che i dati personali dovrebbero essere limitati a ciò che è necessario per lo scopo. Un link che concede l'accesso a dati personali non dovrebbe sopravvivere a quello scopo. Se un link esiste solo per consentire a un contractor di estrarre un report questo trimestre, una scadenza alla fine del trimestre è l'espressione a livello di link dello stesso principio che la tua politica di conservazione già afferma per i dati stessi. Elido per la conformità e la nostra pagina trust approfondiscono il lato della residenza e dell'audit.

I team che condividono file sensibili si affidano al conteggio di clic e all'utilizzo singolo. Un trasferimento di credenziali, un'esportazione di dati una tantum, un documento con gate NDA per un singolo revisore: il link dovrebbe aprirsi una volta, per una persona, e poi essere inerte. Abbina quello a un gate password e hai due fattori indipendenti, a cui arriviamo dopo.

Come la scadenza si abbina a gate password e regole geo#

La scadenza è un gate, non una destinazione, e i gate si impilano.

L'edge valuta prima la scadenza. Un link scaduto non raggiunge mai il prompt della password e non esegue mai le regole di instradamento geo o dispositivo, perché non c'è nulla verso cui instradare. Questo ordinamento è deliberato: significa che un link monouso trapelato che è già stato usato non può nemmeno essere sondato per sapere se aveva una password, poiché la risposta di scadenza torna prima che qualsiasi logica di quel tipo venga eseguita.

Per le condivisioni sensibili, scadenza e password sono controlli complementari. La password è "dimostra di essere autorizzato"; la scadenza è "e solo entro questa finestra, o solo una volta". Ognuno da solo è più debole di entrambi insieme. Un link monouso che è anche protetto da password è morto dopo una singola apertura riuscita e inutile a chiunque lo intercetti dopo il fatto. Trattiamo il gate stesso in link corti protetti da password.

Le regole geo si combinano allo stesso modo. Un link con geo-targeting che è anche limitato nel tempo indirizzerà per paese finché è attivo e restituirà la risposta di scadenza una volta chiusa la finestra, con il controllo del paese che non gira mai dopo la scadenza. Il modello mentale è un breve stack di gate attraverso cui la richiesta passa in ordine, e la scadenza siede in cima a quello stack. Niente di tutto questo è un caso speciale; emerge dalla valutazione del controllo più economico e più decisivo per primo.

Come configurarlo#

Il flusso pratico è lo stesso indipendentemente dalla modalità. Crei o modifichi un link corto, scegli una regola di scadenza e scegli cosa dovrebbe restituire un hit scaduto.

Per una data, imposta il timestamp di scadenza e conferma il fuso orario. Un link impostato per scadere a "mezzanotte" senza un fuso orario è ambiguo tra le regioni, e l'ambiguità è esattamente il tipo di sfasamento di un giorno che emerge in un thread di supporto. Usa una zona IANA esplicita come Europe/Berlin affinché "fine della giornata della campagna" significhi la stessa cosa per tutti.

Per un conteggio di clic, imposta il limite e decidi se vuoi che il conteggio sia rigoroso. Per un link monouso, imposta il limite a uno. Scegli la tua risposta di scadenza per link: 410 Gone per i link che vuoi che i crawler dimentichino, 404 per discrezione, o una pagina di scadenza brandizzata su un dominio personalizzato per i link di marketing rivolti agli esseri umani. La guida agli smart link illustra i campi delle regole, e la pagina dei prezzi tratta quali capacità di scadenza sono in quale livello.

Una nota sull'onestà riguardo ai tempi, perché qui la scadenza viene sopravvalutata altrove. Le regole per data e conteggio di clic vengono valutate al momento della richiesta rispetto al record del link, quindi una scadenza basata su data ha effetto nel momento configurato. Una scadenza manuale, dove disabiliti un link a mano, deve propagarsi attraverso le cache edge nello stesso modo in cui lo fa qualsiasi modifica al link. Questo è circa un secondo nel percorso normale, con un breve TTL della cache come limite superiore, che è lo stesso modello di propagazione documentato in strategia di cache per i redirect URL. Per i limiti di conteggio di clic, un traffico molto elevato e simultaneo distribuito tra le regioni può far passare un piccolo numero di clic extra prima che il contatore distribuito si stabilizzi. Per un limite di campagna di 1.000 questo è rumore. Per un link monouso che stai trattando come un confine di sicurezza rigido, non fare affidamento solo sul conteggio: aggiungi una password o un controllo lato server alla destinazione, perché "esattamente una volta, garantito, sotto concorrenza avversariale" è una proprietà che la destinazione è meglio posizionata ad applicare rispetto all'hop di redirect. La scadenza all'edge è un forte controllo, non una garanzia crittografica, e dirlo è la differenza tra una funzionalità e una responsabilità.

Usata per ciò in cui è brava, la scadenza è una delle riduzioni del rischio più economiche nel toolkit dei link. Un link di campagna che non può imbarazzarti dopo la vendita, una condivisione di documenti che si chiude da sola, un link credenziale che è esaurito al primo utilizzo: ognuno rimuove una classe di problema prima che possa accadere. Per la domanda più ampia su se i link corti siano sicuri da distribuire del tutto, gli URL shortener sono sicuri è la lettura complementare.

Correlati nel blog#

Prova Elido

Accorciatore di URL ospitato nell'UE: domini personalizzati, analisi approfondite e API aperta. Piano gratuito - senza carta di credito.

Tag
link expiration
self destructing link
expiring url
temporary link
one time link
link expiry date

Continua a leggere