ypsdf1
|
b0e572d7ac
|
库存双向同步(分叉以Java为主):新增push_shop_stock接收插件本地库存改动,web购买补写last_modified支撑竞态护栏;数据安全护栏(盘上状态文件三态判定:清空自愈补推/指错库拒绝握手/登录页告警横幅)与MySQL表结构快照入库
|
2026-10-10 21:52:59 +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
|
5912c6fd76
|
引导初始化:管理密码首次由部署者自设,解开占位符密码无法保存配置的死结
|
2026-10-02 17:10:39 +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
|
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
|
54cd3c4f59
|
feat: 初始提交 Web 管理后台源码 (PHP)
|
2026-06-14 16:35:07 +08:00 |
|