我正在开发Flash网络游戏的Java后端-客户端和服务器使用操作消息格式(AMF)进行通信。几周前,我们公司的另一个团队让一个用户对其产品进行了黑客攻击,该用户反编译了Flash客户端,并使用一个经过更改的版本向虚假请求泛滥了后端。我们想在我们的新游戏中防止这种攻击。
(更多详细信息:使用的Web服务器是Tomcat,AMF客户端是BlazeDS。)
我想知道防止这种攻击的最佳方法是什么。我有一些想法:
nginx配置似乎是处理速率限制的最佳位置,但是我找不到有关nginx如何与AMF交互的任何资源。 AMF请求是否直接发送到Tomcat?
大多数请求都涉及相关用户的userId参数。涉及过度使用的userId的限速请求可能是一种方法-但是,只想泛滥服务器的攻击者可以轻松地向随机的userId发送垃圾邮件。
进行与上述相同的操作,但可以使用IP地址代替userId。但是,我无法确定是否可以从AMF请求中获取IP地址。
最佳答案
您的Java应用程序应将唯一的标识符传递给主机操作系统的防火墙,并阻止该客户端。通过此操作,您将能够防止应用程序执行不应做的事情(成为防火墙)。