Я использую API для создания личных сообщений. Содержимое может включать HTML и ссылки. Среди этих ссылок есть некоторые, которые являются ссылками для действий в один клик. Пример обычной ссылки: <a href="https://" target="_blank">..</a>
Проблема в том, что Discourse обходит все ссылки и активирует эти действия в один клик.
Как это предотвратить? Не уверен, какая именно функция за это отвечает.
Есть ли какой-то специальный атрибут, который можно добавить в HTML, чтобы указать Discourse игнорировать ссылку?
Или я упустил какую-то настройку?
Примечание: сейчас я добавил проверку на бэкенде, чтобы игнорировать переходы Discourse, но, по возможности, хотел бы избежать зависимости от этого.
Не следует создавать ссылки, которые выполняют действие при простом переходе по ним. Это широко считается уязвимым в различных аспектах. Пользователь должен явно подтвердить действие.
Суть в том, что пользователи подписываются на уведомления, и по юридическим причинам вы обязаны добавлять ссылки, позволяющие им отписаться от текущего уведомления или от всех уведомлений. Эти ссылки должны работать в один клик, без дополнительных шагов (вход в систему, подтверждение и т. д.). Они используют сгенерированный токен, и их нельзя использовать во вред. Пользователи увидят сообщение с этими ссылками в своей личной почте (Discourse или других сервисах, таких как Gmail); подтверждение для этого не нужно и не поможет.
Мой вопрос остаётся прежним: есть ли способ сказать Discourse не посещать ссылку? Через HTML или настройки?
Вне зависимости от контекста, это действительно интересно знать. Если такой возможности нет, было бы очень полезно иметь опцию для блокировки доменов/URL, чтобы избежать лишних запросов.
Снова: вы не можете этого сделать. Существуют также браузеры (и расширения) и антивирусы, которые предварительно посещают или предварительно загружают ссылки, найденные на странице.
Любой запрос, вызывающий фактическое изменение на сервере, должен быть запросом POST согласно спецификации HTTP. Поэтому, если у вас есть ссылка, она должна вести на веб-страницу, содержащую кнопку, которая выполняет запрос POST. Любой другой подход приведет к неясным проблемам.
Кто говорит, что они должны быть такими? Это вполне нормально, когда ссылки для отписки ведут на страницу подтверждения — по той самой причине, которую я указал выше.