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

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

このセクションでは、すでに入力とコンテキストを検証していることを前提としています(前のセクションを参照)。この記事では、リクエストが技術的に有効であるが、行動が乱暴に見える場合の対処法と、正当なプレイヤーに悪影響を及ぼさない方法について説明します。

哲学

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

ヒューリスティックス

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

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

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

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

これらの例のいずれか一つだけではチーターを有罪にするのには十分ではないかもしれません。各サンプルは信号として扱うべきであり、決定的な証拠とは考えないでください。良い実践は、疑念スコアを実装することです。プレイヤーがヒューリスティックチェックに失敗した場合、彼らのスコアを増加させます。キックや禁止のような重い措置は、複数のさまざまな検出によってプレイヤーのスコアが高い閾値を超えた後にのみ行うべきです。

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

しかし、同じプレイヤーのランが「アクションのリズム」ヒューリスティックもフラグを立て、1時間後にロビーで「獲得速度」ヒューリスティックが発動した場合、ケースははるかに強力になります。これらの異なる信号の組み合わせは、チートのより信頼できる全体像を描きます。このシステムの強さは、複数のデータポイントを相関させて、対処を取る前に信頼できるケースを築くことにあります。

ハニーポット

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

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

結果を適用する

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

結果の階段 - ほとんどの体験は恒久的な禁止に飛びつくのではなく、段階的な対応の方が有益です:

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

戦略に関する考慮事項

  • 目に見える結果を遅らせる - エクスプロイターに検出のトリガーとなったものを正確に教えないために
  • 応答に対する深刻度を一致させる - 軽微な経済的エクスプロイトは、ゲームを壊す物理学のチートとは異なる扱いが必要です
  • コミュニティを考慮する - 競争的な体験はカジュアルな体験よりも厳しい執行が必要かもしれません
  • 間違いを計画する - 検出の信頼性が低いときは巻き戻し可能なアクションを好む

Persistent offendersには、キックのみに依存するのではなく、Ban APIを使用することを検討してください。Ban APIは禁止されたプレイヤーの再参加を防ぎ、あなたのユニバース全体での追跡を改善します。検出ルールのバージョンを管理し、結果の割合を追跡して問題のあるシステムを特定できるようにします。コミュニティが執行を公正だと感じているかどうかを把握するためにプレイヤーのフィードバックをモニターします。適切なバランスは、あなたの体験のニーズとプレイヤーの期待によって完全に依存します。

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