我正在为 Flash 网页游戏开发 Java 后端 - 客户端和服务器使用动作消息格式 (AMF) 进行通信。几周前,我们公司的另一个团队的产品被一名反编译 Flash 客户端的用户入侵,并使用更改后的版本向后端充斥着虚假请求。我们想在我们的新游戏中防止这种攻击。
(更多细节:使用的网络服务器是 Tomcat,AMF 客户端是 BlazeDS。)
我想知道防止这种攻击的最佳方法是什么。我的一些想法:
nginx 配置似乎是处理速率限制的最佳位置,但我找不到任何关于 nginx 如何与 AMF 交互的资源。AMF 请求是否直接发送到 Tomcat?
大多数请求都涉及相关用户的 userId 参数。涉及过度使用的用户 ID 的限速请求可能是一种方法 - 但是,只想淹没服务器的攻击者可以轻松地向随机用户 ID 发送垃圾邮件。
执行与上述相同的操作,但使用 IP 地址代替 userIds 可以工作。但是,我不知道是否可以从 AMF 请求中获取 IP 地址。