diff --git a/src/main/java/Sdf1_login/Main.java b/src/main/java/Sdf1_login/Main.java index 7bc5443..83d30aa 100644 --- a/src/main/java/Sdf1_login/Main.java +++ b/src/main/java/Sdf1_login/Main.java @@ -3680,7 +3680,7 @@ public class Main extends JavaPlugin private static final Set FROZEN_ALLOWED_CMDS = new HashSet<>(java.util.Arrays.asList( "l", "login", "reg", "sdf1_login", "注册", "登录", "改密码", "找回密码", - "mslogin", "正版", "email", "绑定", "绑定邮箱", + "mslogin", "正版", "删除账号", "通过", "拒绝", "web", "控制台", "2fa", "help")); @@ -8645,6 +8645,11 @@ public class Main extends JavaPlugin // 绑定邮箱 if (cmdName.equals("绑定邮箱")) { + // ★ 3.0 安全修复:邮箱绑定必须登录后才能执行(未登录越权绑邮箱 + 任意收件人 SMTP 滥发) + if (sender instanceof Player && isFrozen((Player) sender)) { + sender.sendMessage("§c§l[登录] §f你还未登录,无法使用该命令。请先使用 §e/l <密码> §f登录"); + return true; + } if (!(sender instanceof Player)) { sender.sendMessage("§c仅玩家可用"); return true; @@ -8751,6 +8756,11 @@ public class Main extends JavaPlugin // ===== /email /绑定 独立命令 ===== if (cmdName.equals("email") || cmdName.equals("绑定")) { + // ★ 3.0 安全修复:邮箱绑定必须登录后才能执行(未登录越权绑邮箱 + 任意收件人 SMTP 滥发) + if (sender instanceof Player && isFrozen((Player) sender)) { + sender.sendMessage("§c§l[登录] §f你还未登录,无法使用该命令。请先使用 §e/l <密码> §f登录"); + return true; + } // /email reload —— 控制台/玩家均可执行 if (args.length >= 1 && args[0].equalsIgnoreCase("reload")) { @@ -9423,6 +9433,11 @@ public class Main extends JavaPlugin // ===== email ===== if (sub.equals("email")) { + // ★ 3.0 安全修复:邮箱绑定必须登录后才能执行(未登录越权绑邮箱 + 任意收件人 SMTP 滥发) + if (sender instanceof Player && isFrozen((Player) sender)) { + sender.sendMessage("§c§l[登录] §f你还未登录,无法使用该命令。请先使用 §e/l <密码> §f登录"); + return true; + } // email reload —— 控制台/玩家均可执行,仅需isAdmin if (args.length >= 2 && args[1].equalsIgnoreCase("reload")) { diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 81d0cc6..3dd76db 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ name: Sdf1_login -version: 3.01 +version: 3.0 main: Sdf1_login.Main api-version: '1.21' commands: