Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как защитить сайт от дос-атак
 
 автор: kotProger   (22.02.2006 в 16:39)   письмо автору
 
 

Здравствуйте!

Подскажиту пожалуйста, как мне защитить свой сайт от дос-атак, при том чтобы поисковые боты заходили на сайт нормально.
Если можно напишите код.
Спасибо.

   
 
 автор: JIEXA   (22.02.2006 в 17:50)   письмо автору
 
   для: kotProger   (22.02.2006 в 16:39)
 

Нас ДОСили недвано. ДОСили через дырку в апаче. Вообщем у меня единственный и думаю самый важный совет: ставить на сервер самое новое ПО, постоянно следить за обнолвением PHP, APACHE, PERL, MySQL и т.д...

   
 
 автор: kotProger   (22.02.2006 в 18:22)   письмо автору
 
   для: JIEXA   (22.02.2006 в 17:50)
 

Дос - как многократный пустой вызов.
Можно ли это сделать средствами php на сайте?

   
 
 автор: cheops   (22.02.2006 в 19:54)   письмо автору
 
   для: kotProger   (22.02.2006 в 18:22)
 

PHP не очень удобно использовать, так как время выполнения скрипта часто ограничено 30 секундами... для этого используют либо системные скрипты, либо программы на C/C++.

   
 
 автор: kotProger   (23.02.2006 в 10:25)   письмо автору
 
   для: cheops   (22.02.2006 в 19:54)
 

Ну а вообще, в каком направлении мни двигаться? Определить с какого ip адреса заходят в короткий промежуток времени и закрыть им доступ? Но тогда я закрываю доступ ip диапазона того провайдера, от которого подключается хакер. На каком принципе работает защита от дос-атак? Да, мне нужно, чтобы боты поисковиков свободно попадали на сайт.

   
 
 автор: cheops   (23.02.2006 в 14:29)   письмо автору
 
   для: kotProger   (23.02.2006 в 10:25)
 

Я бы в первую очередь пожаловался бы хост-провайдеру - у них все инструменты и возможности для определения атак и противостояния им.

   
 
 автор: kotProger   (23.02.2006 в 16:21)   письмо автору
 
   для: cheops   (23.02.2006 в 14:29)
 

Дело в том, что мне дали задание (типа проверочного) для того, чтобы взяли меня на работу. Мне нужно написать прогу на PHP, для отражения дос-атак на сайте.

   
 
 автор: cheops   (23.02.2006 в 22:04)   письмо автору
 
   для: kotProger   (23.02.2006 в 16:21)
 

Хм... ну тогда нужно анализировать обращения с IP-адресов (или даже с подсетей, как правило DoS-актаки производят с зомби-сетей) и частоту обращений, если частота первышает некторое разумное число в минуту - блокировать такой адрес... Только на решать такую задачу на PHP не самое мудрое решение, так как сам PHP жрёт приличное число ресурсов... а если к скрипту будет ещё и база данных прикручена скрипт для отражения DoS атак сам и положит сайт.

   
 
 автор: glsv (Дизайнер)   (24.02.2006 в 12:44)   письмо автору
 
   для: kotProger   (23.02.2006 в 10:25)
 

При обнаружении DOS-атаки создавайте файл .htaccess c запретом доступа из обнаруженного диапазона IP. И через некоторый промежуток времени убирайте это ограничение (чтобы бан был не на всю жизнь). В базе можно хранить время установки каждого ограничения.
Таким образом вы перекладываете часть защиты на Apache. А php остается только контролирующим инструментом.

>Но тогда я закрываю доступ ip диапазона того провайдера, от которого подключается хакер
Да, можете закрыть и целый диапазон, но это меньшее зло, чем если «положат» весь сервер.

> Да, мне нужно, чтобы боты поисковиков свободно попадали на сайт.
При принятии решения: закрывать доступ или нет - проверяйте useragent. Если это робот, то доступ не запрещаем. Useragent-ы большинства поисковых роботов известны.

Либо по другому. Непосредственно в файле .htaccess вместе с запретом доступа из диапазона IP сделать исключения для обращений с useragent-ами поисковых роботов.

   
 
 автор: XPraptor   (24.02.2006 в 12:57)   письмо автору
 
   для: glsv (Дизайнер)   (24.02.2006 в 12:44)
 

В принципе, ДОС атаки, правильно написанному сайту не страшны. Возможность закачать и исполнить че-нить на вашем хосте защищает хостер, а возможность вызвать отказ в обслуживании - должны вы предусматривать.
Если движок написан грамотно, то ему не страшны одновременные обращения даже нескольких тысяч клиентов.
Конечно хостер ограничивает кол-во одновременных сеансов и подключений, но большинство из них кэшируются и не вызывают новой сессии. ДОС атака тоже должна закэшироваться на второй-третьей попытке - и дальше никакие ресурсы жрать не должна. Если конечно не идет автоформирование заголовков атакующим на низком уровне, тогда он будет получать новые сеансы и реально может сожрать выделенные ресурсы.
Защиту на ПХП тут трудновато придумать реальную, очень много придется контролить и действительно, как сказал cheops, сам сайт сожрет ресурсы раньше, чем его успеют забить пакетами злые дяди.
Контролить ИП при формировании заголовков на низком уровне - бесполезно, всегда разный ИП подставляется, хакеру ведь не нужно получать ответ от вашего сервера, поэтому он может указывать все, что угодно в своем ИП.
Если организовать загрузку страниц с проверкой во время выдачи контента о наличии соединения в середине выдачи - не знаю возможно-ли так.
Короче, акромя, как фильтр пакетов на самом интерфейсе компа где хост расположен, с глубокими и своевременными настройками админом, не представляю возможности защитится без серьезных потерь для сайта.

Дизайнер:
На счет User-Agent, это бессмысленно. Если атакующий даже ИП меняет сволочь, то User-Agent, даже я меняю, когда через свой софт по нету лажу. И часто, если кто-то не хочет пускать моего бота, первое, что я делаю - представляюсь гуглом.

   
 
 автор: kotProger   (24.02.2006 в 14:46)   письмо автору
 
   для: XPraptor   (24.02.2006 в 12:57)
 

Может ли хакер нагрузить сервер при помощи CGI к примеру на Perl? Т.е. слить мне в каталог cgi-bin прогу, которая, лихим образом, будет заставлять Apache создавать кучу процессов. Тогда РНР вообще не при делах будет?

   
 
 автор: XPraptor   (24.02.2006 в 15:07)   письмо автору
 
   для: kotProger   (24.02.2006 в 14:46)
 

Сомнительно. Хостер врядли позволит загрузить чегото в эту директорию. А если такой хостер, что позволит, то самому надо защитить ее.
А нагрузить конечно сможет, если удастся запустить оттуда чего-нить.

   
 
 автор: Никоza   (25.02.2006 в 01:43)
 
   для: XPraptor   (24.02.2006 в 15:07)
 

Никак не спасёшься от DoS. Диапазон сетей при такой атаки огромен.
Или программная защита (файерволы) уничтожат все созданые операционкой сокеты, (как последнее средство защитить систему от сбоя и перезагрузки), или операционка сама это сделает. Или вообще перезагрузится. Пропадёт доступ вообще ко всему. (Если сам сервак атаковать.) А атаковать сайт DoS -фтакой - что это значит?...

   
 
 автор: glsv (Дизайнер)   (25.02.2006 в 06:28)   письмо автору
 
   для: XPraptor   (24.02.2006 в 12:57)
 

>На счет User-Agent, это бессмысленно.
Это единственный реальный способ учесть условие пропуска роботов. Можно, конечно, еще по IP проверять, но нужна база IP роботов. Да и такая проверка сама по себе увеличит нагрузку.
Поэтому чтобы учесть условие пропуска роботов, принимаем предположение, что DOS-атакующий не маскируется под робота.

>Если движок написан грамотно, то ему не страшны одновременные обращения даже нескольких тысяч клиентов.
Как сказать... движку, конечно, ничего не будет. А вот ресурсов сервера, выделенных под этот сайт может не хватить.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования