私は、Flash ウェブゲームの Java バックエンドに取り組んでいます。クライアントとサーバーは、Action Message Format (AMF) を使用して通信します。数週間前、当社の別のチームが、Flash クライアントを逆コンパイルしたユーザーによって製品がハッキングされ、変更されたバージョンを使用してバックエンドに偽のリクエストをあふれさせました。新しいゲームでは、この種の攻撃を防ぎたいと考えています。
(詳細: 使用する Web サーバーは Tomcat、AMF クライアントは BlazeDS です。)
この種の攻撃を防ぐ最善の方法を知りたいです。私が持っていたいくつかのアイデア:
nginx 構成は、レート制限を処理するのに最適な場所のように思えましたが、nginx が AMF とどのように相互作用するかについてのリソースが見つかりません。AMF リクエストは Tomcat に直接送信されますか?
ほとんどのリクエストには、関連するユーザーの userId パラメータが含まれます。過度に使用された userId を含むリクエストのレートを制限することは 1 つのアプローチかもしれませんが、サーバーをフラッドさせたいだけの攻撃者は、ランダムな userId を簡単にスパムする可能性があります。
上記と同じことを行いますが、userIds の代わりに IP アドレスを使用するとうまくいく可能性があります。ただし、AMF リクエストから IP アドレスを取得できるかどうかはわかりません。