Защита ajax обработчика от частого обращения

Рейтинг: 0Ответов: 1Опубликовано: 24.10.2014
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) &&                 strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {

После этих условий работаю с данными бд и отдаю их, js их выводит.
Проверка на ajax запросы.
Теперь нужно как-то защищать от частого обращения, обычные страницы защищаю так:

session_start();
session_save_path($_SERVER["DOCUMENT_ROOT"] . "/log/session_comments");
if (isset($_SESSION[telecod_ip])) {
$time = ((int)(time() - $_SESSION[telecod_ip]));
if($time < 2) die("Нельзя обращаться к сайту чаще, чем 1 раз в две секунды!");
}
$_SESSION[telecod_ip] = time();

А вот прикрутить это к ajax проверке не получается, не понимаю, как.

Ответы

▲ 1

Ладно, отвечу напрямую. Вы не можете в PHP запретить серверу обслуживать запросы, потому что сам PHP оживает, после того как сервер запрос принял и обработал и передал всю эту кучу данных в скрипт вместе со всеми подключенными модулями, PHP скомпилировал для вас все актуальные переменные (например, SERVER откуда берется?), короче, расположился в памяти сервера, заняв там нормально так места, и готов изготовить что потребуется...

Если бы все так было просто, как вы изобрели, такой напасти, как DDOS, не существовало бы.