Доброго времени суток форумчане! Подскажите что делать, как защититься, мой сайт усилено пытаются взломать. С чего такие выводы: Переодически, в обратную связь поступают сотни писем в минуту, вот пару примеров писем: и много всяких других, последним звоночком стало то что в БД MySQL сегодня обнаружил тысячи новых записей, записи с содержанием подобным письмам. При том вроде не дурак, данные поступающие от пользователей чищу и экранирую... Что за магия, помогите что делать, как действовать?
а как данные могли попасть в бд? если никакой формы типа коммента нет - тогда уже увы окончательно взломали. если есть - да просто прощупывают известные уязвимости на серваке.
Пока нет повода думать, что вы взломаны. Бот пытается нащупать уязвимость, это нормально Но судя по всему у вас есть проблемы: отсутствует "флуд-интервал" для отправки сообщения с одного IP. Как вообще выглядит форма отправки этого сообщения? Каким методом, есть ли прикрепление файла?
Есть еще возможность оставить отзыв, от туда да идет запись в БД, но перед записью в бд от туда удаляются все кавычки... но тут я понял что этого мало... Да, флуд-интервала нет, файл прикрепить можно в разделе отзывов, но там идет проверка расширения файла и мета-данных (изображения). Сейчас начал шерстить код, ищу уязвимости. И да - я в SQL-инйекциях не силен, подскажите - если допустим залатаю все дыры, но после этого может ли остаться доступ у злоумышленика? мог ли он что то оставить для себя?
Подскажите, если из данных получаемых от пользователей удалять данные символы: Это обезопасит на 100% от SQL-инйекций и подобного взлома?
Если у тебя сайт работает с использованием сессий (а если не работает, значит включи их) прикрути к форме контроллер, как это работает - если есть форма внутри ее создается input с type="hidden", к в качестве name и value записываются случайные (генерированные) значения, так же эти значения записываются в сессию и при отправке формы мы сравниваем, есть ли в POST ключ и значение указанные в этом input type="hidden", если есть тогда обрабатываем запрос, если нет - посылаем. Что бы тебе не захламили сессию, сделай на одну сессию максимум 10 таких записей, если их больше 10 то очищай список этих значений в сессии. Сам придумал хотя думаю до меня кто то подобное уже придумывал. Так же поставь капчу для формы.
Перережь кабель питания серваку, и никакие sql инъекции тебе не страшны. Серьезно, найми спецов которые пробегутся по коду и посмотрят как ты чистишь запросы.