fivem-security について
fivem-securityは、FiveMスクリプトの確認と強化を支援するスキルです。ネットワークイベント、管理コマンド、権限、BAN、永続データを扱う開発者向けで、サーバー側での検証と認可を重視します。
主な機能
- 01サーバー側で状態と権限を検証
- 02ネットワークイベントとNUIコールバックを確認
- 03重要イベントを制限し状態を整理
- 04ゲームのネイティブネットワークイベントをフィルタリング
- 05拒否を記録し慎重に段階対応
活用シーン
- 01金銭、アイテム、車両を付与する処理の強化
- 02管理コマンドや管理者限定イベントの保護
- 03BAN、ホワイトリスト、永続データ処理の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ germanfndez/ fiveai-skills --skill fivem-securityインストール後、Claude Code で/fivem-securityを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
rules/ace-permissions.mdevents.mdidentifiers.mdnet-game-events.mdrate-limiting.mdsandbox.mdserver-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 |
実行手順
- すべてのネットイベントと NUI コールバック、およびそれぞれが変更する状態を列挙します。
- サーバー側で算出できるクライアント値を取り除きます。
- 冒頭に型・範囲、距離、状態のチェックを追加し、条件を満たさない場合は早期に返します。
- 連続実行可能な処理にはクールダウンまたはトークンバケットを適用し、切断時にクリーンアップします。
- 管理者向けの処理は
IsPlayerAceAllowedで制限します。 - ダメージ、弾丸、武器に対するゲームイベントフィルターを追加します。
- 拒否を名前とソース 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。
コメント
Markdown 対応