artur19892
6.08.2016 - 23:53
Подскажите как максимально просто и грамотно защитить php скрипт, который в свою очередь вызывает AJAX функция запросом. Защита нужна от DDOS атак, чтобы человек не написал робота который будет имитировать поведение пользователя и беспорядочно дергать этот AJAX постоянно (не через браузер).
Самое первое что пришло в голову это проверка на параметры сессии. Но никто не мешает ему залогиниться на сайте получить все эти параметры и уже начинать атаку.
Подскажите пожалуйста действенный метод если знаете?
И есть ли вариант спрятать само имя этого php файла из функции javascript??
(Именно от DDOS атаки такой как вызов этой функции javascript которая AJAX дергает php скрипт)
jetistyum
7.08.2016 - 03:42
Это как гонка ракет и пво. Всегда можно придумать что-то ещё. По сути всегда можно сэмулировать то, что делает браузер.
Вопрос 1. А оправдано ли это, действительно кто-то может охотиться за твоим php скриптом? почему-бы не заддосить страничку авторизации, регистрации, или еще какую-то?
Вопрос 2. А что если сделать минимальный тайм-аут, чтобы все запросы чаще N секунд (с одного IP) отклонялись без обработки, например.
AllesKlar
7.08.2016 - 18:07
как минимум проверять $_SERVER['HTTP_X_REQUESTED_WITH']
Но, как уже было сказано, сим лишь немного усложнишь жизнь злому дяде.
_____________
[продано копирайтерам]
Гость_Медведь
7.08.2016 - 19:06
Если позволяет специфика программы, вынести обработку на отдельный сервер (домен). Тогда интерес положить его сразу пропадёт.
оптимизируй скрипт, тогда и проблем таких не будет.
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Цитата (artur19892 @ 6.08.2016 - 21:53) |
Подскажите пожалуйста действенный метод если знаете? |
При каждой генерации страницы генерировать уникальный ключ (например, эмдипятку от майкротайм), и аяксом отдавать только по этому ключу.
_____________
Бесплатному сыру в дырки не заглядывают...
jetistyum
8.08.2016 - 14:06
FatCat Тогда придется хранить где-то кучу доступных ключей для работы. Ведь может быть открыто несколько страниц одновременно. К тому же отдавать этот хэш наружу означает спрятать ключ под ковриком
Стоит ли овчинка выделки?
Цитата (jetistyum @ 8.08.2016 - 12:06) |
придется хранить где-то кучу доступных ключей для работы |
Да, конечно. Например в БД, таблица на поля: ключ (уникальный) и время создания. Время нужно для автоочистки устаревших ключей. Нагрузка будет минимальной.
_____________
Бесплатному сыру в дырки не заглядывают...
killer8080
8.08.2016 - 21:31
Цитата (artur19892 @ 6.08.2016 - 23:53) |
Защита нужна от DDOS атак, чтобы человек не написал робота который будет имитировать поведение пользователя и беспорядочно дергать этот AJAX постоянно (не через браузер). |
А почему именно аякс? Какая разница какую страницу он будет дидосить, результат один и тот же
Вообще на уровне php защищаться от ddos атак невозможно. Существуют решения которые мониторят tcp соединения и подозрительно активные айпишники прописывают в правила блокировки фаервола, но и они эффективны только до определённого уровня массивности атаки.
Цитата (killer8080 @ 8.08.2016 - 19:31) |
Какая разница какую страницу он будет дидосить, результат один и тот же |
Если будут дергать не через браузер (или не имитировать браузер), получат статику не мучая php вовсе.
Цитата (killer8080 @ 8.08.2016 - 19:31) |
Вообще на уровне php защищаться от ddos атак невозможно |
Возможно. У нас на форуме это реализовано. Понятно, что при очень высокой частоте запросов и очень большого диапазона айпишников, алгоритм не справится. Но при относительно небольшой плотности справляется.
Одно время нас долбили практически каждую неделю. Долбили не очень напряженно, пару тысяч айпишников, с каждого 4-5 запросов в секунду. Без защиты сервер бы не выдеражал 10 тыс. запросов в секунду, а с защитой работал вполне приемлемо.
Цитата (killer8080 @ 8.08.2016 - 19:31) |
Существуют решения которые мониторят tcp соединения и подозрительно активные айпишники прописывают в правила блокировки фаервола |
На пхп примерно так же: подозрительные получают статику.
_____________
Бесплатному сыру в дырки не заглядывают...
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.