Forza Discourse a non visitare un link

Ciao,

Sto utilizzando l’API per creare messaggi privati. Il contenuto può includere HTML e anche link. Tra questi link, alcuni sono link ad azione in un clic. Esempio di link base: <a href="https://" target="_blank">..</a>

Il problema è che Discourse visita tutti i link e attiva quelle azioni in un clic.

Come si può prevenire ciò? Non sono sicuro di quale funzione ne sia responsabile.
Esiste qualche indicazione consentita che possiamo inserire nell’HTML per dire a Discourse di ignorare un link?
Oppure c’è un’opzione che mi sono perso?

Nota: al momento ho aggiunto un controllo nel backend per ignorare le visite di Discourse, ma se possibile, preferirei evitare di fare affidamento su questo.

Grazie!

Non dovresti codificare un link che esegue un’azione semplicemente visitandolo. Questo è ampiamente considerato sfruttabile in vari modi. L’utente deve confermare esplicitamente l’azione.

Il contesto è fondamentalmente questo: gli utenti si iscrivono alle notifiche e, per motivi legali, è necessario includere link che consentano di annullare l’iscrizione alla notifica corrente o a tutte le notifiche. Questi link specifici devono essere azionabili con un singolo clic, senza passaggi aggiuntivi (accesso, conferma, ecc.). Tali link utilizzano un token generato e non possono essere sfruttati. Gli utenti vedranno il messaggio con questi link nella loro posta privata (Discourse o altri servizi come Gmail); per questo caso, la conferma è indesiderata e non sarebbe di alcun aiuto.

La mia domanda rimane valida: esiste un modo per indicare a Discourse di non visitare un link? Tramite HTML o opzioni?

Indipendentemente dal contesto, è comunque interessante saperlo. Se non esiste, sarebbe molto gradita un’opzione per inserire in blacklist domini o URL, al fine di evitare richieste non necessarie.

Ancora: non puoi farlo. Ci sono anche browser (e estensioni) e antivirus che precaricano o previsitano i link che incontrano in una pagina.

Qualsiasi richiesta che causi un effettivo cambiamento sul server deve essere una richiesta POST secondo le specifiche HTTP. Quindi, se hai un link, devi indirizzarlo a una pagina web contenente un pulsante che esegue una richiesta POST. Qualsiasi altro metodo porterà a problemi oscuri.

Chi dice che devono esserlo? È piuttosto normale che i link per annullare l’iscrizione portino a una pagina di conferma, proprio per il motivo che ho spiegato sopra.

In realtà è una ragione piuttosto valida. Non ci avevo pensato. :thinking:

Prima di tutto, il mio cliente. :smile:
In realtà avevo prima realizzato un modulo, ma lui voleva un link per un’azione con un solo clic.

Ma hai sollevato un punto molto valido, grazie per avermelo fatto notare!