サーバーサイドの検出と結果

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

このセクションでは、すでに入力とコンテキストを検証していることを前提としています(前のセクションを参照)。この記事では、リクエストが技術的に有効であるが行動が悪質に見える場合に何をすべきか、また正当なプレイヤーに害を及ぼさずにどのように応答するかをカバーします。

哲学

  • サーバーが決定する。検出と結果はサーバー上で行われます。クライアントサイドの検出に基づいて禁止することは避けるべきです。なぜなら、エクスプロイターはそれを簡単に回避できるからです。
  • まずは害を防ぐ。エクスプロイトの影響を静かに無効化します。たとえば、プレイヤーがスピードハッキングをしている場合、すぐにキックするのではなく、最後の有効な位置に戻すだけにします。ゲームや他のプレイヤーを保護するために必要な場合にのみ罰を与えます。
  • 比例的かつ可逆的であること。誤検知が発生する可能性があると仮定します。恒久的な禁止よりも、一時的な停止やリソースの削除など、元に戻せるアクションを好みます。
  • 設計 > 検出。あなたの主なセキュリティは、堅牢な検証とレート制限から来ます(クライアント-サーバー境界のセキュリティおよび他のセクションで説明)。以下の検出方法は、これらの防御を補完するためのものであり、置き換えるものではありません。

ヒューリスティック

ヒューリスティックは、技術的には可能だが正当なプレイヤーには非常にあり得ない行動をフラグ付けする行動チェックです。これは、基本的な検証をすり抜ける疑わしい活動を捕まえるための「経験則」です。効果的なヒューリスティックは、プレイヤーの行動を理論的な最大値または合理的なベースラインと比較します。

たとえば、プレイヤーが突然あなたのシミュレーターゲームで10億コインを獲得したと主張した場合、リモート検証はリクエストが正しく構造化されていることを確認するかもしれません。しかし、サーバー上のヒューリスティックチェックは、その金額を得るのに数週間かかるべきであり、数秒での取引は疑わしいとフラグを立てます。

以下は、サーバーサイドのヒューリスティックの3つの古典的な例です。それぞれがプレイヤーの行動をゲームのルールや物理的制限と照らし合わせて検証し、一般的なエクスプロイトに対する強力な防御を作り出します。

サーバーサイドヒューリスティック説明例
最速クリアタイム障害物コースのようなタスクを完了するための理論上の最速時間を計算します。これには最適な経路を見つけ、最大のプレイヤースピードを仮定することが含まれます。オビーで、世界記録が30秒の場合、5秒のクリアタイムはテレポートやスピードエクスプロイトの強い信号です。
獲得率プレイヤーがリソース(通貨、経験、アイテム)を獲得できる最大の正当なレートを追跡します。プレイヤーが1分間に100コインを正当に獲得できる場合、1秒間に10,000コインを突然獲得することはフラグを立てるべきです。
アクションの間隔サーバーはプレイヤーの繰り返しの行動間の時間間隔を分析します。人間の入力には自然なわずかなタイミングの変動がありますが、単純な自動化スクリプト(自動クリックなど)はしばしばロボットのように一貫したタイミングでアクションを実行します。釣りのミニゲームで、プレイヤーがラインを投げるためにクリックします。サーバーは各キャストのタイムスタンプを記録します。プレイヤーが正確に同じ間隔(例:正確に2.500秒)で100回連続してラインを投げた場合、それはマクロやボットの強い指標です。人間のタイミングは自然に変動します。

これらの例のいずれかが単独でチーターを有罪にするには不十分かもしれません。それぞれは信号として扱うべきであり、決定的な証拠とは見なされるべきではありません。良い実践は、疑いのスコアを実装することです。プレイヤーがヒューリスティックチェックに失敗した場合、スコアを増加させます。キックや禁止などの厳しいアクションは、複数の異なる検出がプレイヤーのスコアを高い閾値を超えた後にのみ行うべきです。

たとえば、熟練したプレイヤーがあなたのオビーを記録的なタイムでクリアし、「最速クリアタイム」ヒューリスティックをトリガーしたとします。彼らは禁止されるべきでしょうか?彼らがエクスプロイトしている可能性もありますが、正当な意図しないショートカットを発見した可能性もあります。この単一の信号に基づいて彼らを禁止することはリスクが高く、あなたの最も献身的なプレイヤーの一人を罰する可能性があります。

しかし、同じプレイヤーのランが「アクションの間隔」ヒューリスティックでも人間とは思えない一貫した入力をフラグ付けし、1時間後に「獲得率」ヒューリスティックをトリガーした場合、ケースははるかに強力になります。これらの異なる信号の組み合わせは、チートのより信頼できる絵を描きます。このシステムの強みは、複数のデータポイントを相関させて、アクションを取る前に自信のあるケースを構築することにあります。

ハニーポット

チーターがあなたのゲームのRemoteEventsを探るのを検出する方法の一つは、ハニーポットと呼ばれる囮を使用することです。ハニーポットは、エクスプロイターにとっては正当なものに見えるRemoteEventまたはRemoteFunctionですが、あなたの正当なクライアントスクリプトでは決して使用されません。このリモートを発火できる通常のプレイヤーはいないため、受信するトラフィックはすべてエクスプロイターからのものである必要があります。サーバーがこのリモートが発火されたことを検出すると、それはクライアントが干渉しているという非常に高い信号です。最良の即時アクションは、事件を記録し、プレイヤーをセッションからキックすることです。

別のバリエーションは、特定の方向性の目的を持つRemoteEventsを設計することです - 一部はクライアント→サーバー通信専用、他はサーバー→クライアント通信専用です。イベント名はその意図された方向を明らかにしませんが、サーバーは各リモートがどの方向で使用されるべきかを追跡します。エクスプロイターがクライアントからサーバー→クライアントのリモートを発火しようとすると、これは信頼できる検出方法として機能します。なぜなら、正当なゲームプレイでは決して誤った方向で通信がトリガーされることはないからです。

結果の適用

検出システムが疑わしい行動をフラグ付けした場合、応答戦略を慎重に考慮してください。異なるゲームは、そのコミュニティ、競争の利害、混乱に対する耐性に基づいて異なるアプローチを必要とします。

結果の階段 - ほとんどのゲームは、恒久的な禁止に飛びつくのではなく、応答をエスカレートさせることから利益を得ます:

  • 静かなログ - プレイヤーに影響を与えずに証拠を構築します
  • 静かな緩和 - エクスプロイトの影響をブロックします(リクエストをドロップ、値を制限、正しい状態を同期)
  • 一時的な制限 - 特定の機能を制限します(トレード、リーダーボード、マッチメイキング)
  • 目に見える執行 - キック、一時的な停止、または恒久的な禁止

戦略に対する考慮事項

  • 目に見える結果を遅らせる - エクスプロイターに検出を引き起こした正確なトリガーを教えないようにします
  • 応答に対して重みを合わせる - 軽微な経済的エクスプロイトは、ゲームを壊す物理チートとは異なる扱いを必要とするかもしれません
  • コミュニティを考慮する - 競技ゲームはカジュアルゲームよりも厳格な執行が必要かもしれません
  • 間違いに備える - 検出の信頼度が低い場合は、可逆的なアクションを好みます

常習犯に対しては、キックに頼るのではなく、Ban APIを使用することを検討してください。Ban APIは、禁止されたプレイヤーが再参加するのを防ぎ、あなたのユニバース全体での追跡を改善します。検出ルールのバージョン管理と結果率の追跡を行い、問題のあるシステムを特定します。プレイヤーのフィードバックを監視して、あなたの執行がコミュニティにとって公正に感じられるかどうかを評価します。適切なバランスは、あなたのゲームのニーズとプレイヤーの期待に完全に依存します。

©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。