За последние 24 часа нас посетили 22578 программистов и 1280 роботов. Сейчас ищут 773 программиста ...

Защита от флуда.

Тема в разделе "PHP для новичков", создана пользователем Funch, 18 окт 2020.

  1. Funch

    Funch Новичок

    С нами с:
    18 окт 2020
    Сообщения:
    16
    Симпатии:
    0
    Здравствуйте.
    Делаю чат, продумываю этапы добавления сообщения в БД.
    Необходимо реализовать защиту от повторной отправки сообщения (защита от флуда)
    1. Пользователь отправляет сообщение
    2. Вызывается функция add_message();
    3. Идёт проверка отправленного сообщения пользователем с его предыдущим отправленным сообщением , записанным в сессию, если они не равны, то:
    3.1 добавляем сообщение в БД
    3.2 записываем это сообщение в сессию

    такой способ защиты от спама будет нормальным или нужно каждый раз дергать БД для того, чтобы выбрать последнее сообщение пользователя и сравнить его с отправленным новым сообщением ? Спасибо
     
  2. lastdays

    lastdays Активный пользователь

    С нами с:
    27 сен 2012
    Сообщения:
    410
    Симпатии:
    74
    Можно просто время последнего сообщения сохранять куда-угодно и запрещать повторную отправку мессаги. Ну или капчу :D
     
  3. Funch

    Funch Новичок

    С нами с:
    18 окт 2020
    Сообщения:
    16
    Симпатии:
    0
    Вы не поняли, повторную отправку такого же сообщения
     
  4. Ezhevsky

    Ezhevsky Активный пользователь

    С нами с:
    2 апр 2020
    Сообщения:
    86
    Симпатии:
    1
    Можно сделать как сказал человек выше, но по другому. У тебя есть табличка в базе данных, текст, пользователь и время с датой, выставляешь значение, что если такие сообщения уже были и после них найденых сообщений от того же пользователя, то сообщение не отправляется.
     
  5. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    Можно сделать редирект на туже страницу, когда пользователь ввел сообщение, нажал на кнопку отправить сообщение отправляется страница обновляется происходит редирект. При попытке отправить сообщение ему придется еще раз заполнять форму.
    Но повторно сообщение такое же с таким текстом который был прежний можно отправить.
    Вообще наверное лучше использовать капчу.