Обход ограничения в 3 ответа

Сначала приношу извинения, если этот вопрос уже обсуждался где-то. Я поискал в категории и не нашел упоминания, но мог упустить, если формулировка была иной.

Пользователи на доске, которую я модеру, обратили наше внимание на ошибку. Они могут обойти ограничение в 3 ответа, удаляя и восстанавливая сообщения. Шаги для воспроизведения:

  1. Создайте 3 последовательных сообщения.
  2. Удалите 3-е сообщение, добавьте 4-е.
  3. Восстановите 3-е сообщение.

Это можно повторять столько раз, сколько пользователь захочет, при условии, что перед восстановлением удаленных сообщений одновременно активны только 3 сообщения. Например, если активны сообщения 1, 2 и 15, пользователь может восстановить удаленные сообщения с 3 по 14.

1 лайк

Трехкратный лимит ответов — это скорее предостережение, чем что-либо иное.

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

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

4 лайка

Спасибо за ваш ответ. Это не стало проблемой, и насколько мне известно, никто из участников форума этим не воспользовался, но я решил сообщить разработчикам на всякий случай, вдруг это ранее не было зафиксировано и уязвимость можно исправить.

Дополнительно: Лидеры и модераторы — пожалуйста, при необходимости скройте эту тему, чтобы уязвимость было сложнее найти через поиск.

Я думаю, что другой тип ограничения должен решить эту проблему вандализма:

Вы можете установить max_post_deletions_per_day значительно ниже. Сейчас оно установлено на 10, так что это может произойти только 10 раз?

Также согласен с @Stephen, что в данном конкретном случае, если это происходит, это должно просто трактоваться как … участник ведёт себя оскорбительно, и решаться путём блокировки.

Мы намеренно разрешаем этот паттерн в коде для крайне редких случаев.

2 лайка