Forzar a Discourse a no visitar un enlace

Hola,

Estoy utilizando la API para crear mensajes privados. El contenido puede incluir HTML y enlaces. Entre estos enlaces, algunos son enlaces de acción con un solo clic. Ejemplo de enlace básico: <a href="https://" target="_blank">..</a>

El problema es que Discourse visita cualquier enlace y activa esas acciones de un solo clic.

¿Cómo se puede evitar eso? No estoy seguro de qué función es la responsable.
¿Hay alguna indicación permitida que podamos insertar en el HTML para indicar a Discourse que ignore un enlace?
¿O hay alguna opción que me haya perdido?

Nota: Actualmente he añadido una verificación en el backend para ignorar las visitas de Discourse, pero si es posible, preferiría no depender de ello.

¡Gracias!

No se debe codificar un enlace que ejecute una acción simplemente al visitarlo. Esto se considera ampliamente explotable de varias maneras. El usuario debe confirmar explícitamente la acción.

El contexto es básicamente que los usuarios se suscriben a notificaciones y, por razones legales, se requiere agregar enlaces que les permitan darse de baja de la notificación actual o de todas las notificaciones. Esos enlaces específicos deben ser acciones de un solo clic, sin pasos adicionales (inicio de sesión, confirmación, etc.). Esos enlaces utilizan un token generado y no se pueden explotar. Los usuarios verán el mensaje con esos enlaces en su buzón de entrada privado (Discourse u otros como Gmail); la confirmación no es deseable en este caso y no ayudaría.

Mi pregunta sigue vigente: ¿hay alguna forma de indicar a Discourse que no visite un enlace? ¿Ya sea a través de HTML o de opciones?

Independientemente del contexto, en realidad es interesante saberlo. Si no existe, tener una opción para bloquear dominios/URLs y evitar solicitudes innecesarias sería muy bienvenido.

De nuevo: no puedes hacer eso. También existen navegadores (extensiones) y antivirus que precargan o previsitán los enlaces que encuentran en una página.

Cualquier solicitud que provoque un cambio real en un servidor debe ser una solicitud POST según la especificación HTTP. Por lo tanto, si tienes un enlace, debes dirigirlo a una página web que contenga un botón que ejecute una solicitud POST. Cualquier otra forma dará lugar a problemas confusos.

¿Quién dice que deben serlo? Es bastante normal que los enlaces de cancelación de suscripción lleven a una página de confirmación, exactamente por la razón que mencioné anteriormente.

En realidad, es una razón bastante sólida. No había pensado en eso. :thinking:

Ante todo, mi cliente. :smile:
De hecho, primero hice un formulario, pero él quería un enlace de acción de un solo clic.

Pero has planteado un punto muy válido, ¡gracias por señalármelo!