[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Защита PHP от AJAX скрипта, напрямую?
artur19892
Подскажите как максимально просто и грамотно защитить php скрипт, который в свою очередь вызывает AJAX функция запросом. Защита нужна от DDOS атак, чтобы человек не написал робота который будет имитировать поведение пользователя и беспорядочно дергать этот AJAX постоянно (не через браузер).

Самое первое что пришло в голову это проверка на параметры сессии. Но никто не мешает ему залогиниться на сайте получить все эти параметры и уже начинать атаку.

Подскажите пожалуйста действенный метод если знаете?

И есть ли вариант спрятать само имя этого php файла из функции javascript??

(Именно от DDOS атаки такой как вызов этой функции javascript которая AJAX дергает php скрипт)
jetistyum
Это как гонка ракет и пво. Всегда можно придумать что-то ещё. По сути всегда можно сэмулировать то, что делает браузер.
Вопрос 1. А оправдано ли это, действительно кто-то может охотиться за твоим php скриптом? почему-бы не заддосить страничку авторизации, регистрации, или еще какую-то?

Вопрос 2. А что если сделать минимальный тайм-аут, чтобы все запросы чаще N секунд (с одного IP) отклонялись без обработки, например.

AllesKlar
как минимум проверять $_SERVER['HTTP_X_REQUESTED_WITH']
Но, как уже было сказано, сим лишь немного усложнишь жизнь злому дяде.

_____________
[продано копирайтерам]
Гость_Медведь
Если позволяет специфика программы, вынести обработку на отдельный сервер (домен). Тогда интерес положить его сразу пропадёт.
inpost
оптимизируй скрипт, тогда и проблем таких не будет.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
FatCat
Цитата (artur19892 @ 6.08.2016 - 21:53)
Подскажите пожалуйста действенный метод если знаете?

При каждой генерации страницы генерировать уникальный ключ (например, эмдипятку от майкротайм), и аяксом отдавать только по этому ключу.

_____________
Бесплатному сыру в дырки не заглядывают...
jetistyum
FatCat Тогда придется хранить где-то кучу доступных ключей для работы. Ведь может быть открыто несколько страниц одновременно. К тому же отдавать этот хэш наружу означает спрятать ключ под ковриком smile.gif
Стоит ли овчинка выделки?
FatCat
Цитата (jetistyum @ 8.08.2016 - 12:06)
придется хранить где-то кучу доступных ключей для работы

Да, конечно. Например в БД, таблица на поля: ключ (уникальный) и время создания. Время нужно для автоочистки устаревших ключей. Нагрузка будет минимальной.

_____________
Бесплатному сыру в дырки не заглядывают...
killer8080
Цитата (artur19892 @ 6.08.2016 - 23:53)
Защита нужна от DDOS атак, чтобы человек не написал робота который будет имитировать поведение пользователя и беспорядочно дергать этот AJAX постоянно (не через браузер).

А почему именно аякс? Какая разница какую страницу он будет дидосить, результат один и тот же wink.gif
Вообще на уровне php защищаться от ddos атак невозможно. Существуют решения которые мониторят tcp соединения и подозрительно активные айпишники прописывают в правила блокировки фаервола, но и они эффективны только до определённого уровня массивности атаки.
FatCat
Цитата (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 соединения и подозрительно активные айпишники прописывают в правила блокировки фаервола

На пхп примерно так же: подозрительные получают статику.

_____________
Бесплатному сыру в дырки не заглядывают...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.