资源图标

转载 反作弊 SpigotSecurity | 反崩服、数据包与漏洞保护 1.1.0

没有下载权限
版权类型
转载
插件中文名
SpigotSecurity | 反崩服、数据包与漏洞保护
插件英文名
SpigotSecurity
原帖地址
https://www.spigotmc.org/resources/spigotsecurity-anticrasher-packet-exploit-protection.137105/
支持的核心 [服务端]
  1. Folia
语言支持
  1. 中文(简体)
适配Minecraft版本 [Java]
  1. 1.21
[MD]
# SpigotSecurity:反崩服、数据包与漏洞保护

SpigotSecurity 是一款适用于 Bukkit 系 Minecraft 服务端的可配置安全插件,旨在防御恶意数据包、崩服攻击及常见漏洞利用。

插件可防护格式异常的数据包、数据包洪泛、危险书籍与物品、无效 NBT 数据、背包漏洞、移动崩溃、实体过载、不安全的客户端下行数据包,以及其他常见崩服手段。

默认配置采用较为保守的策略,以降低误判和误踢玩家的概率。各项重要防护功能、限制阈值、踢出提示、权限和通知均可自行配置。

> 本插件仅为服务端插件,不包含 Velocity 或其他代理端代码。

## 防护功能

- 数据包洪泛与数据包大小防护
- 无效数据包及异常数据包状态检测
- `CustomPayload` 与插件消息防护
- `TabComplete` 与命令建议防护
- BookBan、书籍 NBT 与书籍 JSON 防护
- 有界 JSON、选择器及文本组件校验
- 物品 NBT 与现代数据组件校验
- 递归容器、收纳袋及嵌套物品检查
- 物品名称、Lore 和附魔数据防护
- 属性、药水、烟花、旗帜与玩家头颅数据校验
- 创造模式背包与 `WindowClick` 防护
- 收纳袋、合成、容器与背包复制漏洞防护
- 铁砧改名及各类工作方块防护
- 告示牌及现代告示牌正反面内容校验
- 移动、载具、传送与坐标数据校验
- `NaN`、`Infinity` 与极端数值防护
- 实体元数据与 `DataWatcher` 校验
- 实体、投射物、载具及乘客数量限制
- 粒子、音效、爆炸与速度数据校验
- 计分板、队伍、BossBar 与地图防护
- 命令树、标签及进度数据校验
- 村民交易与发往客户端的背包数据防护
- 资源包与服务器列表响应防护
- 区块内实体、投射物、烟花及书籍数量限制
- 可选的区块调色板与区域文件诊断
- 传送门、末地折跃门及投射物穿越传送门防护
- 红石、漏斗、活塞、发射器及物理更新防护
- TNT 与连锁爆炸防护
- 崩服循环检测与临时连接封禁
- 不修改 KeepAlive 数据包的 KeepAlive 超时诊断

## 崩溃代码与诊断

每个防护类别均对应稳定的崩溃代码。详细检测还会附带额外的规则指纹,例如:

```text
#42-12345678
```

当玩家认为检测结果有误时,可将完整代码提供给服务器管理团队进行排查。

管理员可在游戏内查询代码:

```text
/spigotsecurity lookup <#code>
```

诊断信息可包含:

- 玩家名称与 UUID
- 连接阶段
- 数据包类型
- 数据包大小及已配置的限制
- 是否为基岩版玩家
- 检测原因
- 精确的崩溃代码
- 可选的、受长度限制的数据包十六进制内容
- 可选的异常信息

插件不会向服务端控制台刷屏。安全诊断会写入可配置的异步日志文件。

## 基岩版支持

SpigotSecurity 支持 Geyser 和 Floodgate 环境。

插件会通过可用 API 识别基岩版玩家,并为其应用可配置的、更宽松的数据包大小和频率限制。畸形数据仍会接受校验;基岩版玩家不会被全局绕过检测,也不会因不必要的限制而被踢出。

为避免错误缓存 Java 版玩家的识别结果,玩家加入后会重新刷新检测状态。

## 兼容性

### 支持的服务端

- Spigot
- Bukkit / CraftBukkit
- Paper
- Purpur
- Pufferfish
- Leaf
- Folia

### 可选兼容插件

- PacketEvents
- ProtocolLib
- Geyser
- Floodgate
- ViaVersion
- ViaBackwards

PacketEvents 和 ProtocolLib 均为可选依赖;未安装时,Bukkit 防护核心仍会继续运行。

插件内置适用于 Paper、Purpur、Pufferfish、Leaf 与 Folia 的安全传输配置文件。为避免连接和 KeepAlive 问题,实验性的原始 Netty Hook 默认处于禁用状态。

本插件不包含 Velocity 插件,也不需要安装 Velocity 端组件。

## 配置

配置文件提供以下可编辑选项:

- 启用或禁用各项防护配置文件
- 数据包大小与数据包频率限制
- 违规等级、缓冲值与衰减机制
- 书籍、物品、NBT 与组件限制
- 实体与世界限制
- 基岩版玩家倍率
- 玩家、世界和权限例外规则
- 按防护项目设置的基岩版例外
- 踢出消息与连接消息
- 团队通知
- 崩溃代码覆盖设置
- 诊断与文件日志
- 平台及版本配置文件
- 安全、平衡、严格三种安全模式

默认配置采用保守的生产环境数值,以减少误判。

## 命令

| 命令 | 说明 |
|---|---|
| `/spigotsecurity status` | 显示当前启用的平台、版本配置文件及数据包集成状态。 |
| `/spigotsecurity reload` | 重载配置,并安全重建所有防护集成。 |
| `/spigotsecurity warnings` | 显示配置校验警告。 |
| `/spigotsecurity lookup <#code>` | 显示指定崩溃代码对应的防护配置文件及最近一次检测信息。 |
| `/spigotsecurity modules <page>` | 显示所有防护模块的运行状态。 |

## 权限

| 权限节点 | 说明 |
|---|---|
| `spigotsecurity.admin` | 获取全部管理命令权限。 |
| `spigotsecurity.status` | 允许使用状态查询命令。 |
| `spigotsecurity.reload` | 允许重载配置。 |
| `spigotsecurity.warnings` | 允许查看配置警告。 |
| `spigotsecurity.lookup` | 允许查询崩溃代码。 |
| `spigotsecurity.modules` | 允许查看防护模块状态。 |
| `spigotsecurity.bypass` | 可选的完全安全绕过权限,默认禁用。 |
| `spigotsecurity.nbtquery` | 允许受信任玩家使用 NBT 查询功能。 |
| `team.notify` | 接收安全检测与崩溃代码通知。 |

## 安装

1. 停止 Minecraft 服务端。
2. 将 `SpigotSecurity-1.0.0.jar` 放入 `plugins` 文件夹。
3. 可选安装 PacketEvents 或 ProtocolLib。
4. 启动服务端。
5. 检查 `plugins/SpigotSecurity/config.yml`。
6. 使用 `/spigotsecurity status` 确认当前选择的平台配置文件。
7. 在生产服务器启用严格限制前,请先测试配置。

> 运行本插件需要 Java 21。

## 重要说明

任何 Bukkit 插件均无法保证防御所有可能导致服务端崩溃的攻击方式。

Minecraft 解码器、服务端实现、Java 运行环境、损坏的世界文件或第三方插件中的错误,可能会在 Bukkit 能够安全处理之前发生。

请始终使用最新的服务端构建版本,定期创建备份,并在部署至正式服务器或大型网络前测试安全设置。

## 支持

Discord:

[https://discord.com/invite/uwffG2vrRB](https://discord.com/invite/uwffG2vrRB)

可加入 Discord 获取技术支持、配置帮助与更新信息。
[/MD]
作者
cacca
下载
1
查看
41
首次发布
最后更新
评分
0.00 星 0 星

来自cacca的更多资源

后退
顶部