ypsdf1
|
d0cdadd29d
|
第47批:2FA绑定状态双向同步(pull_state/push_state);图片壁纸下卡片/侧栏半透明毛玻璃自适应;壁纸源改四级fallback(必应主域/中国镜像/NASA APOD/picsum兜底)+转发白名单扩充
|
2026-10-22 23:24:32 +08:00 |
|
ypsdf1
|
3e2bd64a70
|
第46批:修复账号安全卡二维码扫不出(换Arase SVG带静区方案,提取qrcode-svg.js复用twofa_qr库);用户端&管理员端背景系统升级三模式(纯色/图片URL/必应API壁纸,遮罩强度可调,新增api/wallpaper.php代理带缓存与SSRF白名单)
|
2026-10-22 20:59:32 +08:00 |
|
ypsdf1
|
71b644182c
|
第44批:玩家端账号安全双层验证(改密/2FA绑定解绑/恢复代码)+admin用户搜索卡住根因修复+sync改密列名修复
|
2026-10-22 18:55:26 +08:00 |
|
ypsdf1
|
d4748c4e62
|
3.11内测版:在线曲线采集上收core全站唯一入口+领地管理分页
- core.php 新增 onlineCurveEnsureSnapshot:心跳判据(>120秒记0防停服假曲线)、60秒节流、保留7天、source列迁移
- sync.php 三挂点(sync_online_players/online_heartbeat/对账兜底)自动留样本,不再依赖有人开页面
- online_curve.php 三本地函数改薄壳+max字段改真实最大值+文案改Java同步自动采集语义
- admin.php 领地列表/权限商店分页渲染:每页10/20/30预制+自定义不封顶+localStorage记忆;曲线文案同步
|
2026-10-22 16:43:00 +08:00 |
|
ypsdf1
|
b99412cc8a
|
第十六批缺陷修复:封禁公示改查java侧表+卡片入内容区自适应高度+后台AGPL页脚
|
2026-10-14 18:58:05 +08:00 |
|
ypsdf1
|
489b83f29d
|
land_api输出缓冲加固防HTML污染;admin前端apiCall容错HTML响应
|
2026-10-12 00:23:11 +08:00 |
|
ypsdf1
|
8a669b1e24
|
用户组新增二手交易上架数量限制与保底价格字段
- land_api.php 六处 web_user_groups 建表加 shop_max_listings/shop_min_price 列
- 三处 migrations 加 ALTER,handleUpdateUserGroup INSERT/bind 带两字段
- sync.php 建表/迁移/INSERT 同步两字段(配合Java推送)
- admin.php 用户组新建/编辑表单与提交、列表详情显示两字段(-1=跟随全局)
|
2026-10-11 21:24:25 +08:00 |
|
ypsdf1
|
e040e8c994
|
boot恢复模式不再404死胡同:持boot凭据的请求一律302回引导配置页
- security.php 新增 secBootRecoveryRedirect():secGatePage 遇到「不在 IP 白名单但持有效 boot 凭据」的请求,改 302 送回 admin_2fa_setup.php(唯一豁免页),不再返回 nginx 404;secBootAuthenticate 增加凭据预判(无 boot 参数、无会话 cookie、无活动会话则直接判失败),避免路由覆盖面变大后给每个探测请求都 session_start() 刷 session 文件。
- admin.php 令牌层改 secTokenGate(true):admin.php?boot=<引导令牌> 才能进入恢复路由(原先在令牌层就 404);页面对非白名单 IP 依旧不渲染。
- admin_2fa.php 持 boot 但不在白名单 → 直接送回配置页,不再掉进 admin_login.php / admin.php?token= 的 404 弹簧。
- admin_2fa_setup.php:boot 模式隐藏「← 返回」、顶部加恢复指引横幅、后台唯一入口下加 404 警告;新增 修正「刚保存白名单但 ADMIN_IP_WHITELIST 常量本请求内未刷新」导致横幅误报。
- 背景(db/security.log 实录):2026-10-05 09:35:58 boot_unlock 成功,09:35:59 即被 admin.php ip_block,09:42 只能靠宝塔手工改 config.php 脱困。
|
2026-10-05 10:56:35 +08:00 |
|
ypsdf1
|
386c9d861e
|
药效等级上限改按各效果的生存可获取上限,同步 Java 端 b64e7e3
用户纠正口径:原版最大上限 = 生存模式正常探索/合成/建造能拿到的最大值,
不是 /effect 的作弊上限(amplifier 255 = 强度 256)。
· 抗性提升 信标最高 2 级
· 海豚的恩惠 只有潮涌能量块一个来源 → 最高 1 级
改动:
- api/land_api.php 新增 getSurvivalMaxLevel():39 个效果逐项查表
(可升 II 的 11 个 + 单一来源恒 1 的 + 生存无来源的 + 未知兜底 1),
与 Java 端 AreaProtection.getSurvivalMaxLevel() 134 个 case 标签
逐项对账一致
- 新增 getEffectLevelCap():min(生存上限, 用户组 max_effect_level)
两层同时生效;用户组配 256 也突破不了生存硬顶
- handleUpdateLandField 写入 give_effects 时改为逐个效果封顶,
此前是统一按 256 放行,等于没封
- getLandMaxEffectLevel 注释澄清它只是「用户组软顶」,真正封顶看 getEffectLevelCap
- admin.php 两处说明文案改为生存可获取上限口径,举例抗性提升 2 级、
海豚的恩惠 1 级
|
2026-10-04 19:57:23 +08:00 |
|
ypsdf1
|
4160c60aa6
|
新增用户组药效等级上限配置,与Java端双向打通
配合 Java 端 6f92028(原版药效强度上限 256)。原版 /effect 的
amplifier 硬上限是 255,即药效强度 1~256,此前 Web 侧封顶写死
255 且各建表点口径不一,本次统一为 max_effect_level 配置项。
改动:
- web_user_groups 增加 max_effect_level 列(默认 256)
· sync.php / land_api.php / core.php 全部 8 处建表块补列
· 3 处迁移表补 ALTER 条目,老库自动升级
- api/sync.php syncUserGroups:Java 推送时接收并写入 max_effect_level,
<=0 或超过 256 一律归一到 256(原版硬上限不可突破)
- api/land_api.php 新增 getLandMaxEffectLevel():按领地所有者所属
最高优先级用户组取上限,无组则 256;handleUpdateLandField 写入
give_effects 时改用该上限 clamp(原先硬编码 255)
- api/land_api.php update_user_group 读写补该字段
- admin.php 用户组新建/编辑弹窗补「药效等级上限」输入框
(1~256,默认 256),并附原版范围说明;两处提交参数同步带上
规则:普通玩家(未加入任何用户组)固定按 256 封顶,严禁超限;
加入用户组后按组配置封顶,填 256 即不额外限制。
|
2026-10-04 19:26:05 +08:00 |
|
ypsdf1
|
419b677aa9
|
修复工单上传图片误判+用户组max_effects配置同步
|
2026-10-04 14:48:43 +08:00 |
|
ypsdf1
|
fe1ed613ba
|
工单管理支持上传图片(兰空图床转存)
- 新增 lsky.php:兰空图床 API 客户端,token 缓存+提前60秒续签+401自动重签重试
- 新增 lsky_keys.php:图床凭据模板(仓库仅占位符,真值只在服务器,永不上传)
- api/ticket.php:新增 upload_image 动作,限 png/jpg、单张≤2048K、内容与后缀必须一致、同会话每分钟限12次;web_tickets 增 images 列(JSON 数组,上限3张,URL 仅限自家图床)
- core.php:权威建表补 images 列 + 老库幂等 ALTER 迁移
- player/admin 两端:上传即暂存、光标处插入 [图片N] 滚动占位符、上限3张;提交时随工单入库
- player/admin/service 三端详情:占位符还原为 markdown 图片,未引用图片补在末尾
|
2026-10-04 10:16:37 +08:00 |
|
ypsdf1
|
9ee8023d90
|
领地权限与面积限制接口:补生物蛋/涂蜡刮蜡两权限字段,新增退费比例与面积限制配置项
|
2026-10-02 19:31:20 +08:00 |
|
ypsdf1
|
196e20868e
|
安全闸门最小化信息透露:非白名单请求统一返 nginx 原生 404,新增 DB 引导标记
- secGatePage / secGateApi 不再回 403(页面 HTML 与 JSON),一律 secNginx404(),
探测者分不清是文件不存在还是被拦截;拒绝仍写 db/security.log。
- 新增 secIsBootstrapped() 双判据:config SEC-UPDATE 区已有令牌(既有站点即刻生效)
或 web.db 的 sec_bootstrap 标记表有行(secWriteConfig 保存时写入)。
- 全新部署首次访问(两者皆空)为引导模式:放行并把 admin.php 跳到 admin_2fa_setup.php,
配齐白名单/访问令牌/2FA 后一保存即自动转强制;读库异常从严按已引导。
- secTokenGate 引导模式不强制,已引导后照旧 ?token= 否则 404。
- setup 页状态卡片新增「门禁状态」展示;config.php 注释同步 404 与引导标记说明。
- 不调用 SQLite3::enableExceptions(false):PHP 8.4 该写法触发 E_DEPRECATED,
提前输出会把 nginx404 的状态行挤掉(404 变 200),改由 @ + try/catch 兼容新旧版本。
|
2026-10-02 13:42:02 +08:00 |
|
ypsdf1
|
186e670400
|
SN管理:修正顶层签发入口里被转义成字面量的 emoji
|
2026-09-30 17:41:53 +08:00 |
|
ypsdf1
|
43fd8e2891
|
SN管理:顶层办理签发入口(玩家ID+设备类型直发),详情页旧签发按钮移除
|
2026-09-30 17:32:08 +08:00 |
|
ypsdf1
|
27da2b5c05
|
SN日志动作列中文化:admin.php与player.php新增SN_ACTION_CN映射,覆盖issue_admin/cancel_force等全部动作值
|
2026-09-30 12:31:17 +08:00 |
|
ypsdf1
|
a97f9274cc
|
管理端 issue 命令 reason 文案修正:办理签发单独文案,不再误标为管理员强制执行
|
2026-09-30 12:20:11 +08:00 |
|
ypsdf1
|
f033e71095
|
SN管理端新增 issue 办理签发命令:两条件硬校验并分别提示,isForce 固定为 0;管理端详情页加入办理签发按钮与确认文案
|
2026-09-30 12:11:49 +08:00 |
|
ypsdf1
|
b7b2647ef1
|
需求3脱敏:config.php改为占位符分发(敏感信息不入库),清除admin.php公网前端13处与land_api.php的硬编码SECRET_KEY,改为服务端注入/常量比对
|
2026-09-30 11:18:41 +08:00 |
|
ypsdf1
|
a46737d64b
|
SN注销冷静期分流:管理员强制注销跳过1小时冷静期,代办注销保持三条件门槛+1小时冷静
|
2026-09-29 23:57:27 +08:00 |
|
ypsdf1
|
c46c9ebdfe
|
紧急加固三层:admin.php 入口令牌门禁 + 2FA 扫码绑定与精确诊断
第三层(新增,config.php 的 SEC_ACCESS_TOKEN):
- 只有 admin.php?token=<令牌> 才放行,缺/错令牌一律返回 nginx 原生 404
(与"文件真的不存在"逐字节一致,探测者无从判断),令牌检查置于白名单之前
- 登录接口在密码校验通过后才下发 token,2FA 通过与收银台跳转由服务端补拼
- 入口页加 Referrer-Policy: no-referrer,防令牌经外链 Referer 泄露
- 配置页展示后台唯一入口地址,支持一键重新生成令牌
第一层修复(2FA 验证码"无效"):
- secTotpVerify 容错窗口 ±30 秒扩到 ±90 秒
- 新增 secTotpDiagnose:失败时区分"密钥没对上"与"设备时钟偏移多少秒"并给出处置指引
- Base32 解码兼容空格/连字符与 0/1/8/9 手误,避免密钥被静默截短
- 验证页倒计时与服务器时间显示改用服务端时钟基准
- 密钥生成改幂等,"重新生成"二次确认,防止已扫码密钥被误作废
第二层(二维码):
- admin_2fa_setup.php 内联 qrcode-generator(MIT) 生成 otpauth 二维码,离线可用
- 后台侧边栏新增"安全配置"入口;admin_2fa_setup.php?boot= 在白名单 IP 下同样生效
已通过线上端到端验证 22 项 + 二维码 OpenCV 往返解码校验。
|
2026-09-29 22:55:46 +08:00 |
|
ypsdf1
|
fd03189f31
|
SN三条件门槛:报失/补办/注销统一前置校验与最小化提示(不透露未达标项),web_item_sn 新增 detached_at/own_chest,管理端详情展示逐条判定并拆分强制注销/代办注销
|
2026-09-29 20:22:20 +08:00 |
|
ypsdf1
|
52e07ec9de
|
fix: SN回执幂等防止重复补发,后台命令下发后轮询回执直到出结果
|
2026-09-29 18:03:32 +08:00 |
|
ypsdf1
|
18bd1e9b19
|
feat: SN防伪后端 api/sn.php、8张SN数据表与玩家端/管理端SN页面
|
2026-09-29 11:16:32 +08:00 |
|
ypsdf1
|
7e3af6d7d7
|
添加折扣价格硬锁规则:优惠后价格必须小于原价,且不低于0.01元;售价低于0.01元的商品不支持折扣
|
2026-07-16 19:02:36 +08:00 |
|
ypsdf1
|
f3919a8715
|
实现折扣价格功能:数据库表、后端API、前端界面完整支持折扣价格字段
|
2026-07-16 18:33:21 +08:00 |
|
ypsdf1
|
5fcecdaefd
|
彻底修复库存0变-1:库存框改text+严格校验(空=无限,0=售罄,非法报错不再静默转-1)
|
2026-07-16 17:18:49 +08:00 |
|
ypsdf1
|
e2808276c0
|
修复库存=0误转为-1的bug + 盲盒显示??及随机消费语录
|
2026-07-16 16:48:31 +08:00 |
|
ypsdf1
|
304bd8f9ef
|
修复充值商店配置500错误:getParam参数不匹配+前端防重复提交
|
2026-07-16 15:01:33 +08:00 |
|
ypsdf1
|
6da7f58281
|
新增充值商店配置管理功能:库存、临时优惠、售价、债券范围、上下架
|
2026-07-16 14:39:44 +08:00 |
|
ypsdf1
|
4afc2470b0
|
修复对账页面空白: 前端d.orders改为d.data.orders(success()包装格式不匹配)
|
2026-07-16 13:14:49 +08:00 |
|
ypsdf1
|
43cb042bf0
|
修复MySQL连接: 集中管理凭据,常量未定义时用默认值兜底
|
2026-07-16 11:28:05 +08:00 |
|
ypsdf1
|
bed190ca8d
|
修复: 订单不存在问题-平台MySQL直查+同步机制+管理后台手动同步
- queryOrder: 本地订单不存在时直查平台MySQL,找到则自动同步到本地
- handleNotify: 回调找不到本地订单时从平台MySQL补建
- checkPlatformOrderStatus: 超时3s→10s,返回更多字段(trade_no/money/player)
- recharge_orders_api: 新增sync_platform action,管理员手动从平台同步全部已支付订单
- admin.php: 充值对账页新增「从平台同步」按钮
- 解决: 游戏已发钱但前端/后台显示订单不存在的问题
关闭 #1069 #1070
|
2026-07-15 21:58:30 +08:00 |
|
ypsdf1
|
8f54e3ffc6
|
修复: 订单对账页合并到后台+防重复支付超时+玻璃模态弹窗
- pay.php: createOrder添加30分钟过期检测+清理陈旧created订单
- admin.php: 新增充值对账标签页(内嵌)+毛玻璃详情弹窗
- admin.php: 替换所有confirm/alert为glassConfirm/glassAlert
- recharge_orders.php: 改为跳转admin.php#recharge_orders
- 移除独立页链接,改为go('recharge_orders')
关闭 #1061 #1062 #1063
|
2026-07-15 18:56:52 +08:00 |
|
ypsdf1
|
449976478e
|
充值对账页面+防重复支付+高频补单+轮询器改进
- recharge_orders.php + recharge_orders_api.php: 管理员充值订单对账页面
- admin.php 侧边栏添加充值对账入口
- pay.php: 创建订单时检测已有未支付订单(复用),防重复支付
- player.php: 续支付检测+支付成功后清除本地订单+恢复按钮
- poller_online.php + pay.php: 添加web_transactions唯一索引
- .gitignore: 排除密钥.md
关闭 #1056 #1057 #1055 #1060 部分
|
2026-07-15 18:00:11 +08:00 |
|
ypsdf1
|
1c9e5808a1
|
WIP: php 本地未提交改动
包含:
- admin.php / api/land_api.php / api/sync.php / login.php 修改
- 新增 active_players.php / online_curve.php / today_bonds.php
注:后续将视 origin/php 情况 reset --hard 对齐,本分支用于保留 WIP。
|
2026-07-14 22:02:10 +08:00 |
|
ypsdf1
|
b34753d1fd
|
新增封禁名单联控 + 用户管理封禁显示
- land_api.php: web_player_bans表 + handleSyncBans + sync_bans action
- admin.php: list_bans API接口
- admin.php前端: 用户行显示封禁状态(红色+禁图标+hover详情)
|
2026-07-12 22:08:46 +08:00 |
|
ypsdf1
|
28c7aa119e
|
修复: green_discount折扣率(折数)语义——前端/后端计算ecoAmt改为×折数/10,管理面板max=10默认值10,校验与文案全改
|
2026-07-08 00:18:47 +08:00 |
|
ypsdf1
|
f32c7cfe86
|
收银台双模式收款与打包配置全链路实现
- 收银员新增 can_cash 现金收款权限字段(登录/列表/新增/编辑全链路)
- 购物车结算支持 pay_mode=cash/bond 双模式,现金模式跳过余额校验与扣债券
- 收银台前端读取可配置 packmoney 实时报价,修复此前硬编码+2元与实际收费不符
- 管理后台新增打包费(packmoney)与环保减免(green_discount)配置端口
- 同步接口新增 get/set_shop_config,Java端定时器拉取配置
- 购物小票书塞入首个潜影盒,免费潜影盒订正为原色(SHULKER_BOX)
|
2026-07-06 23:48:44 +08:00 |
|
ypsdf1
|
59701d1627
|
新增独立收银台页面与收银员账号体系:支持收银员/管理员登录、手动折扣(服务端强制上限)、订单记录;同步修复代购≥1000仍误报需玩家密码问题(#733 #734)
|
2026-07-06 19:27:14 +08:00 |
|
ypsdf1
|
0e1f26508b
|
管理后台用户组页新增全局传送点上限(maxhome)配置入口(#726)
- loadUserGroups拉取get_config展示全局home上限卡片
- 新增showHomeConfig/saveHomeConfig弹窗,POST update_config(key=max_home_per_player)
- 复用现有area_config通路,与Java端max_home_per_player配置项对应
|
2026-07-06 18:10:36 +08:00 |
|
ypsdf1
|
8de2cffe82
|
新增管理后台独立收银台模式:管理员可为指定玩家代购商品(商品浏览+购物车+背包/潜影盒结算+颜色可选收费+≥1000债券密码确认)
|
2026-07-06 17:54:55 +08:00 |
|
ypsdf1
|
7a283ae4e0
|
商城购物车模式+收银台结算+后台折扣配置:前端购物车FAB/抽屉/结算弹窗,后端buy_cart接口事务批量购买,admin购物车配置卡片,cart_config/save_shop_config接口
|
2026-07-06 16:39:47 +08:00 |
|
ypsdf1
|
e46ee109d3
|
修复PHP管理面板相关问题
|
2026-07-06 11:22:31 +08:00 |
|
ypsdf1
|
ffb6e24d5f
|
fix: PHP到期时间解析修正秒→分钟的单位换算
|
2026-07-03 23:37:37 +08:00 |
|
ypsdf1
|
31493de10d
|
feat: PHP管理面板到期时间改为智能解析,支持数字/中文单位/日期格式,玩家只需填'30'表示30分钟
|
2026-07-03 22:41:34 +08:00 |
|
ypsdf1
|
1277c1fdf3
|
feat: php管理面板添加用户组成员时增加到期时间输入框 - 管理员可手动设置expiry_time - 成员表格展示到期时间列 - 到期为0表示按用户组duration_minutes自动计算
|
2026-07-03 19:37:05 +08:00 |
|
ypsdf1
|
591d71ede0
|
fix: PHP数据库锁修复 + 用户组添加/移除错误处理
1. initTables()统一创建所有核心表(web_user_groups, web_user_group_members等)
2. handleAddGroupMember改用playerExists()本地验证替代异步validatePlayerViaJava()
3. handleRemoveGroupMember增加错误处理和affected行数检查
4. 移除validation_callback/visitor中的CREATE TABLE IF NOT EXISTS
|
2026-07-03 13:41:22 +08:00 |
|
youpaishidifu
|
b9ca56ff7f
|
feat: 修复用户组权限检查 - 所有玩家可查看购买用户组 + 修复JavaScript语法错误
|
2026-07-01 11:22:51 +08:00 |
|