关于 roblox-networking
roblox-networking 面向开发 Roblox 联机玩法的开发者,提供网络安全指导,重点涵盖客户端输入校验、权威模型选择和远程调用处理。
主要功能
- 01在服务器校验客户端输入
- 02选择权威模型
- 03为玩法请求选择远程类型
- 04限制请求频率与载荷
- 05在编辑模式模拟网络
适用场景
- 01为 Roblox 游戏添加远程调用
- 02防范篡改玩法请求
- 03在编辑模式测试网络代码
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tabooharmony/ roblox-brain --skill roblox-networking安装后在 Claude Code 中输入/roblox-networking确认已加载。
附带文件references/full.md
详细介绍
roblox 网络
何时加载
在添加远程对象、处理不可信输入、添加冷却时间或分配权限时加载。
快速参考
- 所有客户端参数都由攻击者控制;在服务器上验证类型、大小、所有权、状态、距离和冷却时间。
- 价格、伤害、奖励和权限都应从服务器持有的定义中查询。
- 先选择权限模型:Server Authority 使用客户端预测 + 服务器回滚,不等同于
SetNetworkOwner。 - 在 Server Authority 下,模拟输入使用
InputAction/BindToSimulation()+UseFixedSimulation,而不是远程对象。 - 大多数游戏玩法请求使用事件;让
RemoteFunction调用保持简短且有界。 RemoteEvent用于可靠状态;它与属性/特性复制之间没有顺序保证——使用一个明确的通道或版本状态。UnreliableRemoteEvent仅用于可替换数据;可能丢弃,且上限为 1000 字节。- 引擎上限:每种远程类型的
FireServer速率约为每客户端 500 次/秒,同类型远程对象共用该上限——这是上限,不是目标。 - 在负载下测量载荷大小和触发速率;按速率 × 字节数 × 接收者数量规划预算;加入时发送快照,之后发送差异。
- 命中时间戳是不可信的上下文信息,绝不能作为证明。限制其时效性并验证服务器历史;参见 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返回。 - 达到阈值时记录可疑行为;绝不要因单个格式错误的数据包而处罚。
- 编辑模式下的运行:封装网络层,使
RunContext:IsEdit()使用环回模拟对象(full.md)。
需要更多详情? references/full.md 包含验证、限流和模拟对象模式。
评论
支持 Markdown