Forcer Discourse à ne pas visiter un lien

Bonjour,

J’utilise l’API pour créer des messages privés. Le contenu peut contenir du HTML ainsi que des liens. Parmi ces liens, certains sont des liens d’action en un clic. Exemple de lien basique : <a href="https://" target="_blank">..</a>

Le problème est que Discourse visite tous les liens et déclenche ces actions en un clic.

Comment pouvez-vous empêcher cela ? Je ne suis pas sûr de savoir quelle fonctionnalité en est responsable.
Y a-t-il un indice que nous pouvons insérer dans le HTML pour demander à Discourse d’ignorer un lien ?
Ou existe-t-il une option que j’aurais manquée ?

Note : pour l’instant, j’ai ajouté une vérification côté backend pour ignorer la visite de Discourse, mais si possible, j’aimerais éviter de m’y fier.

Merci !

Il ne faut pas coder un lien qui déclenche une action simplement en le visitant. Cela est largement considéré comme exploitable de diverses manières. L’utilisateur doit explicitement confirmer l’action.

Le contexte est le suivant : les utilisateurs s’abonnent aux notifications et, pour des raisons légales, vous devez ajouter des liens leur permettant de se désabonner de la notification en cours ou de toutes les notifications. Ces liens spécifiques doivent permettre une désinscription en un seul clic, sans étapes supplémentaires (connexion, confirmation, etc.). Ces liens utilisent un jeton généré et ne peuvent pas être exploités. Les utilisateurs verront le message avec ces liens dans leur boîte de réception privée (Discourse, ou d’autres comme Gmail) ; la confirmation est indésirable dans ce cas et n’apporterait aucune aide.

Ma question reste donc la même : existe-t-il un moyen de dire à Discourse de ne pas visiter un lien ? Que ce soit via le HTML ou des options ?

Indépendamment du contexte, il est en fait intéressant de le savoir. Si cela n’existe pas, avoir une option pour mettre en liste noire des domaines ou des URL afin d’éviter des requêtes inutiles serait très bien accueilli.

Encore une fois : vous ne pouvez pas faire cela. Il existe également des navigateurs (extensions) et des antivirus qui prévisitent ou préchargent les liens qu’ils rencontrent sur une page.

Toute requête qui provoque un changement réel sur un serveur doit être une requête POST conformément à la spécification HTTP. Ainsi, si vous avez un lien, vous devez l’orienter vers une page web contenant un bouton qui effectue une requête POST. Toute autre méthode entraînera des problèmes obscurs.

Qui dit qu’ils doivent l’être ? Il est tout à fait normal que les liens de désinscription mènent à une page de confirmation, et ce pour la raison exacte que j’ai exposée ci-dessus.

C’est en fait une raison tout à fait valable. Je n’y avais pas pensé. :thinking:

Avant tout, mon client. :smile:
En fait, j’avais d’abord créé un formulaire, mais il voulait un lien d’action en un clic.

Mais tu as soulevé un point très pertinent, merci de me l’avoir signalé !