[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Защита от флуда
maximka787
Парни, вопрос возник. Анализировал своё приложение и нашел баг. Форма обратной связи отправляет данные мне на почту (имя и текст). Регистрация кстати тоже не защищена в этом плане. В момент отправки регится сессионная переменная, которая считает сколько раз отправил сообщение юзер. Если больше 3-х раз, то блокируем отправку.

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

Я сделал еще одну проверку. В таблицу БД заносится дата последнего письма. Если в течение минуты отправлено более 3х писем, то просто завершаем скрипт. Шанс, что отправят одновременно несколько реальных человек почти ноль.

_____________
..Работает - не трогай!
Игорь_Vasinsky
Цитата
Анализировал своё приложение и нашел баг. Форма обратной связи отправляет данные мне на почту

убери кнопку submit из формы нафиг.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
maximka787
Цитата (Игорь_Vasinsky @ 25.06.2015 - 11:51)
убери кнопку submit из формы нафиг.

Я ж не со зла)) Реально получается сайт не защищен.

У меня форма работает на jquery. Отправка идет скрипту ajax.php.

_____________
..Работает - не трогай!
Valick
Цитата (maximka787 @ 25.06.2015 - 14:46)
В момент отправки регится сессионная переменная, которая считает сколько раз отправил сообщение юзер.

отключил куки (или стёр куку после отправки сособщения) и спамь сколько влезет


Цитата (maximka787 @ 25.06.2015 - 14:46)
Шанс, что отправят одновременно несколько реальных человек почти ноль

"почти" для программиста плохой советчик
в крайнем случае надо хотя бы сообщать что отправка сообщений временно заблокирована в связи с обнаружением ДОС атаки

_____________
Стимулятор ~yoomoney - 41001303250491
maximka787
Цитата (Valick @ 25.06.2015 - 12:47)
Цитата (maximka787 @ 25.06.2015 - 14:46)
В момент отправки регится сессионная переменная, которая считает сколько раз отправил сообщение юзер.

отключил куки (или стёр куку после отправки сособщения) и спамь сколько влезет


Цитата (maximka787 @ 25.06.2015 - 14:46)
Шанс, что отправят одновременно несколько реальных человек почти ноль

"почти" для программиста плохой советчик
в крайнем случае надо хотя бы сообщать что отправка сообщений временно заблокирована в связи с обнаружением ДОС атаки

Тогда да, с сессией не вариант. Хотя я если честно не предупреждаю о блокировке, пишет что отправлено. Злодей думает все пучком. Но знаю, проблему это не решит.

Что касается сообщений для пользователей, то да, сделаю предупреждение. И поставлю максимум 5.

Больше никаких приемов сюда не применить?

_____________
..Работает - не трогай!
Valick
Цитата (maximka787 @ 25.06.2015 - 16:08)
Больше никаких приемов сюда не применить?

разрешить отправку без капчи только зарегистрированным юзерам, иначе капчу

_____________
Стимулятор ~yoomoney - 41001303250491
littleman
Rekapcha не плохая, там реализовано вроде один отправляешь без капчи потом если еще попытки подтверждаешь что ты не робот и тд. что ты не хобит, гобит.
На тостере реализована она очень хорошо, и где то ещё видел, работают одинаково, значит настройки одни и теже (это моё мнение, я не ставил рекапчу)
Valick
Цитата (littleman @ 25.06.2015 - 16:19)
там реализовано вроде один отправляешь без капчи потом если еще попытки подтверждаешь

это как так?

_____________
Стимулятор ~yoomoney - 41001303250491
maximka787
Цитата (Valick @ 25.06.2015 - 13:10)
Цитата (maximka787 @ 25.06.2015 - 16:08)
Больше никаких приемов сюда не применить?

разрешить отправку без капчи только зарегистрированным юзерам, иначе капчу

Значит придется пока не поздно переделывать сайты.

Так то бы убрал в авторизованный доступ, да сама форма регистраций на сайтах стоит открытая. без кодов проверки. Проверка идет на уникальность email. если намеренно организовать POST нагрузку с генерацией email, то сайт превратится не пойми во что.

_____________
..Работает - не трогай!
maximka787
Цитата (littleman @ 25.06.2015 - 13:19)
Rekapcha не плохая, там реализовано вроде один отправляешь без капчи потом если еще попытки подтверждаешь что ты не робот и тд. что ты не хобит, гобит.
На тостере реализована она очень хорошо, и где то ещё видел, работают одинаково, значит настройки одни и теже (это моё мнение, я не ставил рекапчу)

Слышал про такую. Не плохая штука) но почему-то в своё время отказались от такой, и перешли на русскую в инете нашлась сама.

_____________
..Работает - не трогай!
maximka787
Я вот что еще заметил.. Зайдя на сайтов 10, крупных, я не увидел капчи. Она может и появляется второй раз, если посетитель повторно регится, но это сессии. А мы пришли к тому, что сессии если отключить, то каждый заход, как новый.

_____________
..Работает - не трогай!
FatCat
Цитата (maximka787 @ 25.06.2015 - 16:08)
Что касается сообщений для пользователей, то да, сделаю предупреждение. И поставлю максимум 5.

Пиши в БД текст сообщения и дату, и проверяй полное совпадение, например за последние сутки. Большинство флуда - идентичными сообщениями. wink.gif

_____________
Бесплатному сыру в дырки не заглядывают...
maximka787
Конечно я рассматриваю хулиганство, нежели ошибки пользователей. У меня стоит фильтрация на повторную отправку email и ip. Я не знаю как работает ПО взломщиков, но если сайт нагрузить POST запросами на форму регистрации, с постоянной сменой email-ов (это поле уникально - логин) то мы можем получить кучу фейковых аккаунтов. Да, их еще надо подтвердить на почте, но БД ведь можно и переполнить. А это трудности.

Кот, как раз хотел спросить, ты мне давно еще советовал по поводу фильтрации по ip.

Вопрос и ко всем, парни. Можно ли изменять .htacess файл через php? На практике это применяется часто или это больше шаманство?

Если можно, то мой метод:

1. Храним в корне сайта файл reserv_htacess.txt, в котором содержим основные настройки файла .htacess) там всего 5 строк (кодировка, вывод ошибок, редирект)

2. Создаём в БД таблицу с заблокированными ip.

3. При массовом (подозрительном) доступе к сайту (GET, POST) заносим ip в БД, и функцией file_put_content('.htacess') создаем новый файл на основе reserv_htacess.txt + Deny from IP

_____________
..Работает - не трогай!
FatCat
Цитата (maximka787 @ 26.06.2015 - 10:25)
Можно ли изменять .htacess файл через php?

Да, это же просто файл.


Цитата (maximka787 @ 26.06.2015 - 10:25)
При массовом (подозрительном) доступе к сайту

В этом главный вопрос - как выявить именно вредителей. А уж как закрывать им доступ - решать исходя из нагрузки на сайт.

_____________
Бесплатному сыру в дырки не заглядывают...
Invis1ble
атакующие всегда на шаг впереди
нужно исходить из целесообразности

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.