EAからブラウザゲームサーバーを誤って削除した方法について

実際、名前のトピックの内容をより正確に表現する方法がわかりませんでした。だから、誰かが私の小さな物語に興味を持っているという事実で遊ぶことにしました。 テストを行うことの重要性と、あなたがアプリケーションを真剣に考えている場合でも、よく考え抜かれたアーキテクチャに関するトピック。



トピックについては重要ではないので、ブラウザゲームの名前は書きません。 私たちは、Electronic Arts(EA Games)のブラウザー戦略について話しています。



実際にストーリー自体をさらに進めます。



今年の春に、暇なときに何かを探して頭を下ろすと、静かに時間を過ごすのに十分興味深いオンライン戦略に出会いました。 ゲームは合理的に考え抜かれ、グラフィックスの点でも非常に美しく、魅力的でさえあることが判明しました(初めて)。 ほとんどすべてのブラウザ戦略の本質は非常に似ており、リソースを取得し、ユニットを構築し、無限の都市のゆったりとした建設を楽しんでいます。





私の不幸(そして多分幸福)に、私は仕事で単調なビジネスをすることはできません。 ゲームのプロセスはすぐに飽きてしまいましたが、それは親切に楽しむことができるチャットとは言えません。私は小さなトロルのように戯れていると言えます(私はそのような比較を求めます)、それは私に多くの喜びをもたらしました。 実際、次のモデレーターの禁止後、FAQを楽しませる方法について少し考えました。



アイデアは、ゲーム用のシンプルなチャットボットを作成し、「こんにちは、素晴らしい世界!」などの準備されたフレーズでログインし、接続をサポートし、スパムを少し送信できるようにすることでした。これは単純なPHPで記述され、通常の仮想サーバーから1分ごとに実行されます。 実際、ボットは、私に別のアイデアが出たときにモデレーターからの禁止を成功裏にキャッチしました。 実際、ゲームには内部メールがあります。 アイデアは非常にシンプルで、サーバー上のすべてのトッププレーヤー(約1,500のニックネームであることが判明)、私のボット、またはクラウンによって起動されたコピーの5つを解析し、手紙を送信し始め、ランダムなニックネームを受信者として選択しました。 ゲームで受け取った手紙からの保護がなかったため、その手紙は悪意のあるものではないことをただただ確認する必要があります。その結果、メールボックスに100から200の不要な手紙があった場合、人々はかなり苦しみました。 これはあまり美しくないことを知っていますが、その瞬間、私はこれに対する人々の態度についてはほとんど心配していませんでした。私はすべてをゲーム内の小さなゲームとして知覚しました。



しばらくして、ゲーム内の内部メール(実際に致命的な役割を果たした)を送信する際の重要な詳細、つまり、これまで見たこともない「コピー」フィールドに注目しました。 実際に手紙を送るスクリーンショット:







コピーフィールドにはコロンで区切られた最大200の名前を含めることができます。これにより、各ニックネームに文字のコピーを送信できます。その結果、一度に201文字を送信でき、1〜2秒に1回送信できます。 複数のボットが存在する場合、これはすでにサーバーに適切な負荷であることが明らかになります(後でわかります)。



ボットのいくつかのコピーは、すべてのプレーヤーが非常に短い時間で数十から数百の文字を受け取り始めたという事実のために、サーバー上に小さなハルマゲドンを即座に配置しました。 効果は素晴らしく、何が起こっているかに対するプレイヤーの反応に本当に満足しました。 しばらくして、サーバーで奇妙なことが起こり始めました。



実際には、ゲームには、たとえば、倉庫がいっぱいの場合に余剰リソースを節約するメカニズムがあります-何かをする必要があります。 したがって、開発者は、さまざまな種類の改善、構築などに必要な他のタイプに従来のリソースを転送するためのメカニズムを提供しました。 記憶が正しければ、10,000 Woodは1つのTwilightツリー、またはそのようなものに変わります。 また、ゲームには有料サービス、いわゆる大臣があり、倉庫がいっぱいになると、プレイヤーではなくエリートにリソースを自動的に転送します。



そのため、次の状況が判明し、何百万ものエリートリソースを持つプレイヤーが登場し始めました(そして、これはそのゲームにとって非常に多くのことです)。 プレーヤーの大臣(購入者)は、倉庫の過剰充填(このゲームでは一般的なこと)の対象であり、明らかに、非常に短い間隔でリソースをエリートのものに転送するコマンドを送信しましたが、チームのキューはボットから送信された文字でいっぱいだったためですプレイヤー、たった今蓄積したリソースを処理するチーム。



リソースを変換するために蓄積されたコマンドに順番が来たとき、それらはそのようなアクションの可能性についてサーバーから追加検証なしで実行されました。明らかに、チェックはタスクがキューに入れられたときにのみ行われ、完了時にではなく、最終的にサーバーの経済の完全な崩壊につながりました一部のプレイヤーはゲーム上の大きなアドバンテージを獲得しているため、ゲームを継続することの完全な不便さ。



その後、5つまたは6つのボットが同時に起動され、安全にダウンした後、サーバーは著しく遅れ始めました。



もちろん、サーバーが落ちて経済が破壊されるという形でのこのような結果は期待していませんでしたが、これは正しいアーキテクチャとテストが重要であることを示しています。



ちなみに、翌日、私はこのメールをここに受け取りました:



こんにちはiSteely、

私の名前はデビッドで、EA Phenomicのグローバルコミュニティマネージャーで、*ゲーム名*を担当しています。



*ゲーム名*での最近のアクティビティに気づき、チャットでアカウントをミュートし、アカウントとIPを禁止し始めました。 私たちのサーバーでのこれらの荒れ狂う活動の理由と、それで何を達成したいのかを知りたいです。



アカウントの禁止を停止することはないため、ここで停止することをお勧めします。 このような動作は、他のすべてのEAアカウントとゲームにも影響する可能性があります。



よろしく、

デビッド・エアハルト



通信の過程で、ご不便をおかけして申し訳ありません。そのような宙返りはもうしないと約束したので、すべてがうまく終わりました。



更新:ちなみに、その後、彼らは措置を講じ、プレイヤーがそれほど多くの手紙を送ることを許可しなくなり、アクションを合理的な時間枠に制限しました。 だから、あなたが言うことができる、私はちょうど問題を指摘した



最も興味深いのは、同じゲームで非常に不快なXSSが見つかり、「ひどい」ことをできるようになったことです。 彼はEAでそれについて書いて、彼らはそれを非常に長い間、約2か月間修理しました。その間に私はその使用についていくつかの実験を行いました。



XSSについて:

「Subject」フィールドに文字を送信するとき、XSSの脆弱性がありました。実際、Cookieを盗むことはできましたが、言語設定、外観など、すべてではなく、最も平凡なものだけを盗むことができましたが、 HTTPのみ。 おそらく、私はポイントではなく何か間違ったことをしました。



そのため、[件名]フィールドには100文字を挿入できました。フィルタリングされなかったため、HTMLタグを挿入できました。実際には、次のような事前作成ページを「iframe」に挿入しました(スクリーンショットは保存されませんでした) 、より明確にするための例を作成しました):





これは、プレーヤーが受け取った通常の手紙です。





これは、「iframe」、「div」、「img」などのタグを使用してブロックできるゾーンの例です。実際、YouTubeからビデオを挿入することもできます(実際に私がやったことです)、バックグラウンドミュージックの読み込みが特別になりましたそれは手紙を閉じた後でもプレイし続けました。



その後、別の「素晴らしい」アイデアが思い浮かびました。 公式サイトのスクリーンショットをレターに置き換えてEA管理またはそれに類似したものを書くと、人々はゲームの管理者が彼らに書いていると思うでしょう。これは個人的な利益のために使用できます。 私は他の人のアカウントを取得することに興味がなかった、すぐに注意します、私はまだそれらをどのように扱い、人々を傷つけるのか分かりませんでしたが、興味の感情は大きかったです。 「本当に成功した? サーバーで起こったことすべてが誰かに巻き込まれた可能性はありますか?」



計画の実施にはそれほど時間はかかりませんでした。私は約1000人のプレイヤーに1通の手紙を送り、その後約100〜120個のパスワードを受け取りました。 ここで* facepalm *という言葉が適切かどうかはわかりませんが、その瞬間でも今でも何も思い浮かびません。 同じ夜、私は同じゲームのヨーロッパのサーバーの1つで同様の実験を行いました-政権から「おそらく」手紙を送っただけです-その後、1000人のプレイヤーのうち10-20個のパスワードしか受け取りませんでした。 その理由-私は知らない、たぶんメンタリティが役割を果たしている、なぜならあなたがメールを受け取ったとき、EAはあなたにユーザー名/パスワードを誰にも送らないように事前に警告するからだ。



All Articles