Безусловная отписка через футер письма

Отказ в обслуживании

image

Я тестирую функцию «ответ по электронной почте» для форума и обнаружил, что опубликованный ответ включает в себя всё цитируемое сообщение, отправленное через Gmail. Оно скрыто автоматически свёрнутым блоком «…», но всё ещё содержит текст подвала «отписаться по электронной почте» и ссылку для отписки, что, очевидно, является уязвимостью безопасности типа «отказ в обслуживании».

@codinghorror советует отключить эту функцию как решение проблемы, поэтому я отключил «подвал с отпиской по электронной почте», который я включил ранее ради удобства пользователей и управления репутацией. Однако я всё ещё получаю письма со ссылками для отписки в подвале.

Я использую Discourse 2.6.0.beta2 1acb2f752bd9075472cd4e8d1b14196e6289f51b

1 лайк

Какого почтового провайдера вы используете? Многие из них настаивают на вставке своих собственных ссылок для отписки. Вы проверили, что отображаемые ссылки ведут на ваш экземпляр, а не на указанных почтовых провайдеров?

1 лайк

Вы можете отключить это, отключив настройку сайта «всегда показывать обрезанный контент». Как администратор, вы всё ещё сможете просматривать полное письмо, нажав на значок конверта в правом верхнем углу сообщения, созданного по электронной почте.

2 лайка

Извините, я перепутал вещи. @codinghorror описал это как решение, но оно не удаляет ключ отписки в подвале полностью, а просто (как указывает справочный текст) меняет протокол URL между mailto и https, что в любом случае раскрывает ключ отписки.

Чтобы прояснить ситуацию: я использую свой собственный сервер sendmail на другой системе, который точно не настроен на добавление каких-либо ссылок или иного контента. Кроме того, сами ссылки генерируются Discourse и имеют вид https://${myforum}/email/unsubscribe/${uniqueId}, что не совпадает с тем, что мог бы сгенерировать другой сервер.

Теперь, протестировав это между обычными пользователями (не администраторами), я вижу, что ссылка требует аутентификации, поэтому её наличие просто некрасиво, это пустая трата места в базе данных и точно не DoS-атака. :sweat_smile:

Я не жалуюсь на то, что ссылка скрыта. Я жалуюсь на то, что она присутствует (даже если скрыта).

У меня всегда была эта настройка, которая, насколько мне известно, никогда не менялась в истории сайта:

image

Я нажимаю на значок троеточия внутри поста, чтобы увидеть процитированный текст.

Упустил ли я какую-то конфигурацию для полного удаления цитируемого раздела в конце ответа? Моя главная причина не включать отправку ответов по электронной почте — именно то, насколько много «шума» от цитат она добавляет на форум. Это снижает ценность форума из-за «ленивого» использования удобной функции отправки ответов по почте. Лень — одна из главных добродетелей программиста, я не осуждаю лень!