Я работаю над серверной частью Java для веб-игры Flash - клиент и сервер взаимодействуют с использованием формата сообщения действия (AMF). Несколько недель назад продукт другой команды нашей компании был взломан пользователем, который декомпилировал Flash-клиент и использовал измененную версию, чтобы залить серверную часть поддельными запросами. Мы хотим предотвратить подобные атаки в нашей новой игре.
(Подробнее: используемый веб-сервер — Tomcat, клиент AMF — BlazeDS.)
Я хотел бы знать, как лучше всего предотвратить такого рода атаки. Некоторые идеи, которые у меня были:
конфигурация nginx казалась лучшим местом для ограничения скорости, но я не могу найти никаких ресурсов о том, как nginx взаимодействует с AMF. Отправляются ли запросы AMF прямо в Tomcat?
большинство запросов включают параметр userId для соответствующего пользователя. Одним из подходов может быть ограничение скорости запросов с использованием чрезмерно используемых идентификаторов пользователей, однако злоумышленник, который просто хочет залить сервер, может легко спамить случайные идентификаторы пользователей.
Делая то же самое, что и выше, но используя IP-адреса вместо идентификаторов пользователей, может работать. Однако я не могу сказать, можно ли получить IP-адрес из запроса AMF.