ypsdf1
|
4be4f1f107
|
修复第四关「未知操作」:稍后再配按钮改原生提交,form.submit() 不带 act 导致落 default
|
2026-10-10 11:05:28 +08:00 |
|
ypsdf1
|
2cb48de453
|
安装锁改为文件+数据库双份:库内 _install_lock 四态门禁
- 文件锁在+库在 → 404;文件锁在+库明确丢失 → 数据丢失警告页(可确认重装)
- 文件锁没了+库内锁在 → 自动补写 install.lock 再 404;两者皆无 → 全新首跑
- 探测失败(MySQL 连不上/配置读不出)一律按「库在」从严
- n4 落盘时同步写库内 _install_lock;老站迁移幂等补写
- 扫库/清库 SQL 排除 _install_lock 标记表,避免误判非空
|
2026-10-10 00:16:18 +08:00 |
|
ypsdf1
|
6f13740cce
|
修复 MySQL 扫库 Unknown column:information_schema 库名补单引号
real_escape_string 只转义不加引号,裸拼 WHERE TABLE_SCHEMA = 库名会被 MySQL 当列名。
|
2026-10-09 23:16:14 +08:00 |
|
ypsdf1
|
1e60d31ffd
|
重构安装页为四步向导:扩展检测/数据库刹车/SMTP强校验/安全配置
- 第一关扩展检测:sqlite3/mysqli 缺失时第二关锁死对应模式(前端 disabled + instValidate 兜底)
- 第二关数据库:mysql 地址端口预填 127.0.0.1/3306;扫库非空立即刹车,列清单后手输「确认清空」二次确认,取消则退回重填
- 第三关 SMTP:四项要么全空要么全不空,全不空必须发送验证码且比对通过才放行
- 第四关安全配置:IP 白名单必填(可自动填充当前 IP),验证码留空即关闭,2FA 跳转 admin_2fa_setup.php
- 统一写盘:最后一关才落 config.php/sql.md/captcha_keys.php,写完生成 install.lock 并自删
|
2026-10-09 21:36:53 +08:00 |
|
ypsdf1
|
0b63a99719
|
install页去掉IP白名单门禁并修null告警, 新增0.0.0.0应急逃生通道
- install.php: sqlMdDbConfig 全新站 java/web 槽为 null, $val 闭包加 is_array 兜底,
消除每个输入框的 array offset on null 告警; 门禁只留令牌层(全新站无白名单可言);
安装成功页改为回显本次写入的完整配置供截图手抄, 背景自删
- admin_2fa_setup.php: 引导页白名单框上方显示当前访问IP; 应急模式免密进 boot 模式
并挂红徽标; secInstallPending 让位改为 !secIsEmergency(), 避免与全局应急路由
形成 install/引导页互跳死循环
- security.php: 新增 secIsEmergency() 判定白名单含 0.0.0.0; secIpAllowed 放行该条目;
新增 secEmergencyGate() 在限流层前把非引导页/非本机请求 302 锁回引导页(用302防浏览器缓存)
- config.php: 补 0.0.0.0 应急用法与用完必删的说明注释
|
2026-10-09 19:56:34 +08:00 |
|
ypsdf1
|
fc8c82b188
|
修复全新部署首跑顺序:装库先于2FA引导;install表单补令牌透传
- security.php 新增 secInstallPending():install.php 在场且无 install.lock = 装库未完成
- 引导模式下所有入口先 302 到 install.php,装完自删后才轮到 admin_2fa_setup.php
- admin_login/admin_2fa_setup 兜住本机直连与已引导未装库两种入口(secTokenUrl 带令牌)
- install.php 表单隐藏 token 字段,已引导站点 POST 也能过第三层门禁
|
2026-10-09 18:56:46 +08:00 |
|
ypsdf1
|
e1010927e5
|
PHP MySQL 适配层与双库切分收尾, 新增自毁式 install.php 配置安装页
- core.php: sqlDialectMySql 方言翻译 + SdfMySqlDb/Stmt/Result 复刻 SQLite3 API, SdfDbRouter 路由与侧别过滤器, 软依赖兜底; 修复 dbExtractTables 把 CREATE INDEX 索引名当表名导致 web 库 0 张表的真 bug
- security.php: sqlMdDbConfig/sqlDbDir/sqlDbFile 双库配置函数, web.db 给 PHP / Java.db 给 Java
- api/minecraft_auth.php, api/poller_online.php: Java 专属表改走 sqlDbFile('java')
- install.php: 自毁式数据库配置页, 只依赖 security.php, 哨兵块替换 + 备份原子写回读校验 + install.lock + unlink 自删, 门禁 404
- .gitignore: 屏蔽 .workbuddy/ 工作目录
- 测试: db 回归 26/26, MySQL 63/63, schema 对拍 11/11, install 端到端 32/32 全绿
|
2026-10-09 18:16:56 +08:00 |
|