inlanger
@inlanger
Django программист

Простейшая защита от DDOS на PHP?

Можно ли организовать простейшую защиту от DDOS не на уровне конфигурации сервера, а на уровне кода PHP? Может кто-то использует готовые решения, тогда поделитесь ссылочками, пожалуйста.
  • Вопрос задан
  • 11614 просмотров
Пригласить эксперта
Ответы на вопрос 10
@bondbig
анти-ддос «на уровне php» — сам по себе — ерунда, по определению. Можно оптимизировать код, чтобы он занимал меньше памяти, меньше процессорного времени, меньше «долгих» запросов к БД и т.п. Но это все имеет смысл делать просто так, как правило, а не в попытках отбить ддос.
На базе кода php можно сварганить IDS, что успешно и делают некоторые.
Ответ написан
Комментировать
casey
@casey
можно перед отдачей страницы класть html в кэш (redis, memcached, а ключ составить из запроса и критичных кук), а в index.php до всего-всего-всего проверять наличие флага «повышенная нагрузка». если флаг стоит — не грузить php код, а отдавать страницу из кэша.

флагом может быть файл — например по крону проверять нагрузку на сервер и создавать /tmp/ddos, если она повышена
Ответ написан
@keatis
Когда DDOSят, главной задачей ставят нагнуть определенный сервис или весь сервер.
Защищаясь от ддоса с помощью php, особых плюсов это в большинстве случаев не принесет (ну разве что, напр., снимет нагрузку с СУБД). А канал так и останется забитым, очередь подключений — полной, апач будет молотить максимальным кол-вом процессов, кто-нибудь доест остатки свободной памяти… А там уже не только пользователям сервиса будет сложно пробиться на сайт, но и админу по ssh.

Защита от DDOS — всегда комплексный подход, а иначе это не защита.
Ответ написан
Комментировать
Kolger
@Kolger
Даже при среднем DDoS скрипт вроде
<?php
echo «123»;
?>

будет занимать у вас 100% CPU.

Наоборот, цель защиты от DDoS — не допустить спама на PHP скрипты средствами, например, nginx.
Ответ написан
Комментировать
@ChemAli
Можно. Отключите PHP и перенаправьте посетителей на статичную версию сайта.
Ответ написан
Комментировать
@odmin4eg
Соглашусь половина сайтов рунета валятся простым ab
добавление обычного кэширования к ним спасает от очень многого. особенно хочу отметить «мемкэшед»

но ддос бывает разный, могут и просто «забить канал» если железо справляется.
но тутже средствами nginx или iptables можно на коленке побороться…
Ответ написан
Комментировать
@BasilioCat
Если ваш скрипт на пхп будет первым делом лазить например в мемкэш и проверять сколько подключений за минуту было с такого же адреса, что и сейчас, и если больше порога, то соединение быстро закрывать, то в теории с небольшим ДоСом вы справитесь. Впрочем если он по те же критериям будет формировать .htaccess с директивами deny from — будет быстрее. А если еще и перед апачем случайно nginx стоит, то есть шанс, что ваш сайт будет даже работать.
Ответ написан
multik
@multik
Как вы собираетесь защищаться от атаки хотя бы с 20 000 айпи? С помощью пхп?

Это как использовать малую сапёрную лопатку, но крутой иностранной фирмы, для защиты от «примитивного» ядерного удара.
Ответ написан
Комментировать
@abo
php, javascript, mysql
защита от ддос это сильно сказано, а вот защититься от всяких паразитных ботов способных положить не шибко быстрый сайт вполне возможно.
Ответ написан
Комментировать
ematveev
@ematveev
PHP разработчик / руководитель / писатель
вот наверное что вас интересует:
https://habr.com/ru/post/659811/
это снизит нагрузку на сервак от всяких ботов, хотя от полноценного DDoS не спасёт
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы