Answer the question
In order to leave comments, you need to log in
How to protect the site from malicious attacks?
Здравствуй, Тостер!
Вопрос мой уж очень расплывчатый, поэтому немного предыстории.
Некоторое время назад наш сайт начали спамить реквестами. Злоумышленники нашли дыру и остановили работу нашего сервиса на некоторое время. Пока наша команда занималась добавлением новой защиты, меня заинтересовал вопрос: от куда будет следующая атака?
Понятно, что это далеко не последний раз. Будут и другие попытки взлома, нахождения эксплойтов и DDoS атак.
Так вот, Тостер, помоги нам. Сайт написан на PHP и на некоторых страницах присутствует AJAX. Писали всё сами и искать ошибки придётся самим.
С чего стоит начать? Какие страницы сайта наиболее подвержены атакам? Где проще всего допустить ошибки?
Какие методы защиты и проверки кода вы используете? Любые советы, истории и статьи приветствуются.
Answer the question
In order to leave comments, you need to log in
1. Пользователь всегда врет. Все без исключения входящие данные ОБЯЗАТЕЛЬНО должны валидироваться, в случае ошибки - шлем на йух.
2. Для средних систем - вполне норм подход: во всех публичных методах выполнять обязательную проверку всех аргументов простых типов, чуть что не так - исключение. Так как проверок будет море - критично время их выполнения, можете посмотреть мой проектик: https://github.com/ko-ko-ko/php-assert
Пример использования:
/**
* @param string $login
* @param string $password
*
* @return int
* @throws \InvalidArgumentException
*/
public function login($login, $password)
{
Assert::assert($login, 'login')->lengthBetween(4, 16);
Assert::assert($password, 'password')->lengthBetween(6, 20);
// Business logic here
}
Если довольно просто грузят сервер - CloudFlare вам в помощь, а если сайт дырявый - то вам, наверное, специалиста нужно для анализа, ну и свои навыки повышать, чтобы сразу писать как положено.
Можно воспользоваться Acunetix Web Vulnerability Scaner. У него есть триал на 14 дней.
Ну смотрите топ по количеству уязвимость по конкретной уже подчитывайите как она работает и какии способы защиты.
1. sql injection
2. xss
etc.
Так же желательно скрывать инфу о сервере.Какой язык используется/какая ос используется/используется ли апач или еще что то/подключить cloudfre etc. и потом сменить ип-его не будут знать извне/использовать последние версии php 5.5 5.6
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question