mcpField
F
fivem-security

fivem-security

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

fivem-security について

fivem-securityは、FiveMスクリプトの確認と強化を支援するスキルです。ネットワークイベント、管理コマンド、権限、BAN、永続データを扱う開発者向けで、サーバー側での検証と認可を重視します。

主な機能

  1. 01サーバー側で状態と権限を検証
  2. 02ネットワークイベントとNUIコールバックを確認
  3. 03重要イベントを制限し状態を整理
  4. 04ゲームのネイティブネットワークイベントをフィルタリング
  5. 05拒否を記録し慎重に段階対応

活用シーン

  1. 01金銭、アイテム、車両を付与する処理の強化
  2. 02管理コマンドや管理者限定イベントの保護
  3. 03BAN、ホワイトリスト、永続データ処理の確認

インストール

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

$npx skills add https://github.com/germanfndez/fiveai-skills --skill fivem-security

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

rules/
ace-permissions.md
events.md
identifiers.md
net-game-events.md
rate-limiting.md
sandbox.md
server-convars.md

詳細

FiveM のセキュリティ

有効化条件

ネットイベントハンドラー、金銭・アイテム・車両・権限を付与するコード、管理者コマンド、BAN のロジック、またはチート・エクスプロイト・堅牢化に関する質問では読み込んでください。

厳守事項

  • クライアントを決して信用しないでください。クライアントはリクエストし、サーバーは独自の設定と状態に基づいて判断します。
  • 価格、数量、報酬、アイテム名をクライアントから受け取らないでください。サーバー側で算出してください。
  • GetInvokingResource() は、プレイヤーであれチーターであれ、ネットワークを介するすべてのネットイベントで nil になります。認証には使えません。
  • RegisterNUICallback は認証されていません。チーターはあらゆるエンドポイントに POST できます。TriggerServerEvent の前に置く唯一のゲートにしないでください。
  • 距離をサーバー側で確認してください:#(GetEntityCoords(GetPlayerPed(source)) - target)、約10ユニット。
  • クライアント側で確認済みでも、状態(ジョブ、アイテム、クールダウン)をサーバー側で再確認してください。
  • 重要なイベントにはレート制限を設け、playerDropped でソースごとの状態をクリアしてください。
  • ネイティブのゲームイベント(weaponDamageEvent、startProjectileEvent、removeAllWeaponsEvent、ptFxEvent)を、AddEventHandler と CancelEvent() でフィルタリングしてください。
  • 管理者操作の認可には ACE のみを使用してください:IsPlayerAceAllowed(source, object)。識別子リストは決して使用しないでください。
  • 永続データのキーには license: を使用してください。Steam 以外から起動した場合、steam: は存在しません。
  • サンドボックスは、リソース自身のフォルダー外への書き込み、os.execute、io.tmpfile() をブロックします。
  • 拒否をログに記録してください。1回の違反で自動BANせず、回数に応じて対応してください。

判断基準

状況参照先
クライアントから送られた価格、数量、または引数rules/events.md
繰り返し発生するイベント、または連続実行可能なイベントrules/rate-limiting.md
ダメージ、弾丸、武器の剥奪、パーティクルrules/net-game-events.md
管理者コマンド、または管理者専用イベントrules/ace-permissions.md
BAN、ホワイトリスト、永続レコードrules/identifiers.md
リソースによるファイル書き込み、またはプロセスの起動rules/sandbox.md
サーバー自体の堅牢化rules/server-convars.md

実行手順

  1. すべてのネットイベントと NUI コールバック、およびそれぞれが変更する状態を列挙します。
  2. サーバー側で算出できるクライアント値を取り除きます。
  3. 冒頭に型・範囲、距離、状態のチェックを追加し、条件を満たさない場合は早期に返します。
  4. 連続実行可能な処理にはクールダウンまたはトークンバケットを適用し、切断時にクリーンアップします。
  5. 管理者向けの処理は IsPlayerAceAllowed で制限します。
  6. ダメージ、弾丸、武器に対するゲームイベントフィルターを追加します。
  7. 拒否を名前とソース ID とともにログに記録します。

出力要件

検証、距離、ACE、状態のチェックを最初に行うよう強化したハンドラーを返してください。削除したクライアントパラメーターを明記し、必要な server.cfg の行を含めてください。

参照先

  • rules/events.md — ハンドラー、距離、NUI コールバック。
  • rules/net-game-events.md — ゲームイベントのペイロード、キャンセル。
  • rules/ace-permissions.md — プリンシパル、オブジェクト、ACE ガード。
  • rules/rate-limiting.md — クールダウン、トークンバケット、クリーンアップ。
  • rules/identifiers.md — license:、トークン、接続保留。
  • rules/sandbox.md — ファイルシステム、プロセス、ConVar の制限。
  • rules/server-convars.md — セキュリティ強化用 ConVar。

上流ドキュメント:https://docs.fivem.net/docs/scripting-manual/

コメント