Предотвращение атак Flooding/DOS в приложении Java/AMF

Я работаю над бэкэндом Java для веб-игры Flash - клиент и сервер взаимодействуют с помощью Action Message Format (AMF). Несколько недель назад другая команда в нашей компании взломала свой продукт пользователем, который декомпилировал Flash-клиент, и использовала измененную версию, чтобы заполнить бэкэнд ложными запросами. Мы хотим предотвратить подобные атаки в нашей новой игре.

(Подробнее: используемый веб-сервер - Tomcat, клиент AMF - BlazeDS.)

Я хотел бы знать, каков будет лучший способ предотвратить такую ​​атаку. Некоторые идеи у меня были:

  • конфигурация nginx казалась лучшим местом для обработки ограничения скорости, но я не могу найти никаких ресурсов о том, как nginx взаимодействует с AMF. Запросы AMF отправляются прямо в Tomcat?

  • большинство запросов включают параметр userId для соответствующего пользователя. Запросы с ограничением скорости, включающие чрезмерно используемые идентификаторы пользователей, могут быть одним из подходов, однако злоумышленник, который просто хочет залить сервер, может легко спамить случайные идентификаторы пользователей.

  • сделать то же самое, что и выше, но можно использовать IP-адреса вместо идентификаторов пользователей. Однако я не могу сказать, возможно ли получить IP-адрес из запроса AMF.

1 ответ

Ваше Java-приложение должно передать уникальный идентификатор брандмауэру операционной системы хоста и заблокировать этого клиента. С помощью этого действия вы сможете запретить вашему приложению работать над тем, чего оно не должно делать (например, быть брандмауэром).

Другие вопросы по тегам