ypsdf1
|
e18d8df22f
|
限流第四层新增凭据放行:引导模式/入口令牌/boot/后台会话不再被挂起白屏
|
2026-10-02 15:40:49 +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 |
|
youpaishidifu
|
2f5f02b72d
|
更新 captcha_keys.php
|
2026-10-01 15:12:35 +00:00 |
|
youpaishidifu
|
23c40df6b1
|
删除仓库内不需要的db文件夹(服务器需要仓库不需要)
|
2026-10-01 23:10:01 +08:00 |
|
ypsdf1
|
c0e95b6c73
|
正版验证页:人机验证挂件与卡片边框对齐(同边框色/圆角、内容居中)
|
2026-10-01 17:41:36 +08:00 |
|
ypsdf1
|
293d7b283c
|
修复:主脚本注释含字面量script闭合标签导致页面截断
|
2026-10-01 16:08:39 +08:00 |
|
ypsdf1
|
8fa7eb5c95
|
用户端 player.php 接入人机验证挂件:三个登录入口统一挂载并提交前取 token
|
2026-10-01 15:39:10 +08:00 |
|
ypsdf1
|
1a221330dc
|
config.php 验证码段改为单开关二选一:CF/VA 取值与行内说明写清,全站厂商统一由 CAPTCHA_PROVIDER 决定,密钥仍留 captcha_keys.php
|
2026-10-01 15:11:31 +08:00 |
|
ypsdf1
|
b138171a7c
|
修复人机验证挂件:CF 挂件自行加载 Turnstile SDK,解决后台「验证组件加载失败」
|
2026-10-01 14:25:51 +08:00 |
|
ypsdf1
|
ea5d476825
|
补上admin_login与api/admin遗漏的captcha_guard require(此前调用cgWidgetHtml/cgEnforce但未引入库,线上报undefined function)
|
2026-10-01 14:03:58 +08:00 |
|
ypsdf1
|
17d53c40a0
|
三大场景接入人机验证:新增captcha_guard.php统一校验库与CAPTCHA_PROVIDER配置,管理员登录/用户后台账密登录/正版验证浏览器提交三处接入;captcha_keys.php清空为可入库的空模板并加填写说明,部署脚本排除密钥文件防覆盖线上真值
|
2026-10-01 13:38:29 +08:00 |
|
ypsdf1
|
4f498a80c6
|
fix: 验证码测试页切VAPTCHA V4(V3域名全部NXDOMAIN):SDK换c4.vaptcha.com/src/v4.js、服务端改v41官方verify+本地HMAC双方式、修PHP8.5 curl_close弃用污染JSON;.gitignore排除captcha_keys.php
|
2026-10-01 11:25:01 +08:00 |
|
ypsdf1
|
5400856785
|
fix: 2FA取数参数名定为t(WAF复测矩阵:token+≥32位hex被拦404,t=全长度可过,POST body可过)
|
2026-10-01 10:57:32 +08:00 |
|
ypsdf1
|
2e4ddcbaea
|
fix: 2FA二维码token回退裸hex64,查询参数名保留token(WAF矩阵验证v1_前缀与t=长hex被拦)
|
2026-10-01 10:46:34 +08:00 |
|
ypsdf1
|
1eb898adea
|
2FA二维码token改v1_前缀+查询参数名t换token:规避WAF对32位以上纯hex查询串的404拦截
|
2026-10-01 10:37:59 +08:00 |
|
ypsdf1
|
b86d29b34a
|
新增验证码接口测试页captcha_test.php:上下布局同时接入CF Turnstile与VAPTCHA(v3),密钥四级回退(captcha_keys/config/URL/robots.json),内置siteverify与vaptcha服务端校验代理,暂不接入登录流程
|
2026-10-01 10:24:04 +08:00 |
|
ypsdf1
|
b5b252d1b7
|
新增玩家2FA二维码展示端:api/twofa.php(secret推送10分钟载荷+token取回)、twofa_qr.php(内联二维码库纯展示页)——2FA校验全在Java,PHP只做显示器
|
2026-10-01 10:17:29 +08:00 |
|
ypsdf1
|
eb741beeb4
|
更新.gitignore以屏蔽密钥文件
|
2026-10-01 10:06:19 +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
|
b6983f99e4
|
新增第四层安全防护:全局限流20次/分钟/IP,白名单与带secret的内部调用豁免,超限挂起连接不返回数据
|
2026-09-30 15:56:16 +08:00 |
|
ypsdf1
|
4c2e075667
|
配置页防回车误触修复:回车不再命中首个提交按钮「重新生成令牌」
|
2026-09-30 13:30:48 +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
|
51e418ac16
|
需求4护栏:重置访问密钥不再关闭二次验证——security.php新增2FA快照/语义指纹/回滚/写后比对四函数,rotate_token与save_whitelist走最小写入+护栏,误关即回滚报错
|
2026-09-30 11:19:00 +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
|
345e1e9a9b
|
fix: SN目录快照不再把web_item_sn.cancel_time清零,保留PHP端已写入的注销时间
|
2026-09-29 16:48:51 +08:00 |
|
ypsdf1
|
045d9f60b8
|
SN接口:管理员命令带 is_force 强制标记(Java 侧仅本次绕过冷静期),注销前增加位置前置检查拒绝箱内/他人手上物品,命令回执按执行结果更新状态
|
2026-09-29 13:38:35 +08:00 |
|
ypsdf1
|
18bd1e9b19
|
feat: SN防伪后端 api/sn.php、8张SN数据表与玩家端/管理端SN页面
|
2026-09-29 11:16:32 +08:00 |
|
ypsdf1
|
4db131082c
|
fix: 永久封禁玩家禁止登录Web后台、正版验证粘贴页响应异常时回查真实状态
- core.php 新增 playerWebBanReason():查 web_player_bans 名字封禁(永久/未过期),expire_time 兼容Java推送的毫秒单位;validateWebAccess 接入,商城/CDK/余额/token校验一律拒绝
- api/sync.php 四个登录入口全部拦截:validate_weblogin_token、web_login_request、send_email_code、verify_email_code
- api/minecraft_auth.php:success/error 清空输出缓冲保证纯JSON;新增 action=status 会话真实状态查询;粘贴页提交响应异常时回查状态,已验证则如实提示通过,不再误报"服务器响应异常"
|
2026-09-28 00:03:07 +08:00 |
|
ypsdf1
|
eaadc0bd64
|
chore: gitignore忽略本地开发文档《代码关联关系.md》
|
2026-09-27 21:44:51 +08:00 |
|
ypsdf1
|
f2b87325e1
|
feat: 封禁IP同步Web黑名单(须持游戏内/web token)、清空队列联动清理pending登录请求
|
2026-09-27 21:23:31 +08:00 |
|
ypsdf1
|
6a74dfee91
|
修复单件附魔书结算时 web_transactions 唯一约束冲突
|
2026-07-21 16:43:18 +08:00 |
|
ypsdf1
|
d92f1f47a9
|
安全加固: .gitignore添加deploy_*.py排除规则,移除deploy_php_only.py、sync.php.bak、debug_online.php的git跟踪
|
2026-07-20 13:56:59 +08:00 |
|
ypsdf1
|
c3d9c0925d
|
修复4个问题: 用户组购买确认弹窗、在线曲线清理、高频出售缓冲、每小时活跃数据
|
2026-07-20 13:18:58 +08:00 |
|
ypsdf1
|
312f40c94a
|
修复活动过期后仍走活动价格的bug:前端必须校验discount_active字段
|
2026-07-17 23:32:05 +08:00 |
|
ypsdf1
|
0098efda3f
|
fix: 限时折扣过期时间改为当天0:00即过期
|
2026-07-17 17:17:59 +08:00 |
|
ypsdf1
|
1d5f500a28
|
fix: 限时折扣过期逻辑修复 + Minecraft OAuth功能改进
|
2026-07-17 16:51:38 +08:00 |
|
ypsdf1
|
ff83406013
|
minecraft_auth.php: 改用公共客户端ID实现OAuth,新增verify_code和paste_code_page端点
|
2026-07-17 14:02:38 +08:00 |
|
ypsdf1
|
d539cc10bf
|
改用Microsoft Graph User.Read scope(不依赖Xbox Live API权限)
|
2026-07-17 11:41:00 +08:00 |
|
ypsdf1
|
e30c37ef64
|
修改OAuth scope为XboxLive.signin
|
2026-07-17 11:36:20 +08:00 |
|
ypsdf1
|
51aaedc2b3
|
修复OAuth error回调路由:invalid_scope等错误也能正确显示
|
2026-07-17 11:34:48 +08:00 |
|
ypsdf1
|
b7c83903ca
|
修复Microsoft OAuth回调路由:自动检测code+state参数路由到callback
|
2026-07-17 11:15:08 +08:00 |
|
ypsdf1
|
65fc468ce1
|
新增Microsoft OAuth正版验证API
1. 新增minecraft_auth.php
- 完整的Microsoft OAuth流程
- 支持create_session/check_session/callback/verify_premium
- 验证状态持久化到SQLite
2. 配置项在pay_secrets.php中(gitignored,手工FTP上传)
|
2026-07-17 10:23:07 +08:00 |
|
ypsdf1
|
ace705682c
|
新增支付邮件通知+玩家订单查询功能
1. 支付成功后自动发送付款凭据邮件(仅绑定邮箱的玩家)
- handleNotify回调 + queryOrder补单两条路径均触发
- 邮件包含订单号、商品、金额、到账债券、支付时间
- 异步静默发送,不影响主流程
2. 玩家端新增「我的订单」页面
- 后端新增my_orders action查询pay_orders表
- 前端展示订单列表(状态标签、金额、债券、时间)
- 支持刷新按钮
|
2026-07-16 23:31:34 +08:00 |
|