mcpField
R
roblox-networking

roblox-networking

github.com/tabooharmonyセキュリティ1382.0k 回インストール2 週間前に更新
リポジトリ

roblox-networking について

roblox-networkingは、Robloxのネットワークゲームを開発する人向けのスキルです。クライアント入力の検証、権限モデルの選択、リモート通信の安全な扱いを解説します。

主な機能

  1. 01サーバーでクライアント入力を検証
  2. 02権限モデルの選択
  3. 03ゲーム要求に使うリモートの選択
  4. 04要求頻度とペイロードの制限
  5. 05編集モードでのネットワーク模擬

活用シーン

  1. 01Robloxゲームへのリモート追加
  2. 02改ざんされたゲーム要求への対策
  3. 03編集モードでのネットワークコード検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tabooharmony/roblox-brain --skill roblox-networking

インストール後、Claude Code で/roblox-networkingを入力して読み込まれたか確認します。

同梱ファイルreferences/full.md

詳細

roblox networking

読み込むタイミング

リモートの追加、信頼できない入力の処理、クールダウンの追加、または権限の割り当てを行うときに読み込みます。

クイックリファレンス

  • クライアントからのすべての引数は攻撃者が制御できます。サーバー側で型、サイズ、所有権、状態、距離、クールダウンを検証してください。
  • 価格、ダメージ、報酬、権限は、サーバーが管理する定義から参照してください。
  • まず権限モデルを選択します。Server Authority はクライアント予測とサーバーロールバックを使用し、SetNetworkOwner とは異なります。
  • Server Authority では、シミュレーション入力にリモートではなく、InputAction/BindToSimulation() と UseFixedSimulation を使用します。
  • ほとんどのゲームプレイリクエストにはイベントを使い、RemoteFunction の呼び出しは短く、範囲を限定してください。
  • 信頼性が必要な状態には RemoteEvent を使います。プロパティ/属性のレプリケーションとは順序が保証されないため、明示的なチャネルを1つ使うか、状態にバージョンを付けてください。UnreliableRemoteEvent は置き換え可能なデータにのみ使います。データは破棄される可能性があり、上限は1000バイトです。
  • エンジンの上限:各リモートタイプには、クライアントごとに約500 FireServer req/s の上限があります。同じタイプのリモート間で共有される上限であり、目標値ではありません。
  • 負荷がかかった状態でペイロードと発火頻度を測定し、頻度 × バイト数 × 受信者数を基準に予算を設定してください。参加時にはスナップショットを送り、その後は差分を送信します。
  • ヒット時刻は信頼できないコンテキストであり、証拠にはなりません。鮮度の範囲を制限し、サーバーの履歴を検証してください。full.md §3a を参照してください。
  • 型付きスキーマはセキュリティチェックの代わりにはなりません。ジェネレーターのバージョンを固定し、CI で生成された出力を検証してください。
  • まず NaN/無限大を確認してください(x ~= x、math.abs(x) == math.huge)。NaN は </> による判定を無効にします。utf8.len は、DataStore の保存に失敗する不正な UTF-8 を検出します。
  • シリアライズ:関数は nil として届き、メタテーブルは除去され、混在するキーは破損し、nil はテーブルを途中で切り詰め、テーブルはコピーされます。フィールドごとに検証し、サーバー管理のスナップショット/ID を使って状態を共有してください。
  • Server Authority には AuthorityMode = Server とそのバンドルが必要です。誤予測/ロールバックは通常どおり発生します(full.md)。
  • レート制限はサーバーを保護しますが、検証では引き続き無効なリクエストを拒否する必要があります。Bindable は同じ側でのみ使用できます。テーブルはコピーされ、メタテーブルは除去されます。また、Invoke は OnInvoke が返るまで処理を中断します。
  • 疑わしい動作はしきい値を使って記録してください。不正なパケット1つだけで処罰してはいけません。
  • 編集モードでのプレイ:ネットワーク層をラップし、RunContext:IsEdit() の場合にループバックモックを使うようにしてください(full.md)。

詳細が必要ですか? references/full.md に、検証、スロットリング、モックのパターンがあります。

コメント