Безопасность от бомбы Аякс - PullRequest
0 голосов
/ 18 июня 2011

Есть несколько сервлетов, которые я вызываю из ajax, чтобы проверить доступность пользователя и другую работу. Ajax-запрос может быть отправлен только если пользователь авторизован.

Но проблема в том, что пользователь может подключиться к серверу с помощью массового вызова ajax несколько раз в секунду, используя javascript-инъекции. Это может отключить сервер.

Есть одна возможность контролировать его;

  1. Если число попаданий с одного и того же IP в второй (или некоторый период) пересекает максимальный предел, то я могу сделать недействительным сеанс.

Но некоторые из моих коллег не поддерживают ограничение пользователя. Есть ли другой способ защитить мой сервер от ajax бомбы.

Ответы [ 2 ]

0 голосов
/ 18 июня 2011

У меня была такая же проблема с разработанным мною веб-приложением, Решение, которое я придумал, состояло в проверке реферера на стороне сервера, и разрешать только звонки с сервера (127.0.0.1).

0 голосов
/ 18 июня 2011

У вас есть несколько вариантов:

  • вы можете throttle ajax-запросов, немного замедляя их при достижении лимита, как это делают некоторые сайты.
  • ограничение скорости (полностью заблокировать) запрос ajax после X запросов, как это делает Twitter со своим API
  • , выбирая другой вариант, например WebSockets.

Они могутбудь то на стороне сервера или на стороне клиента, серверная сторона является очевидным выбором для обеспечения безопасности.

Но проблема в том, что пользователь может подключиться к серверу с помощью массового вызова ajax несколько раз в секунду, используя javascriptинъекции.Это может привести к остановке сервера.

Внедрение Javascript - это наименьшая из ваших проблем, если вы заинтересованы в том, чтобы ваш сервер оставался в живых.Необработанные HTTP DDoS-атаки представляют собой гораздо большую проблему, чем несколько запросов ajax.Главное, что нужно внедрить в Javascript - это безопасность, а не время работы сервера.

...