fix: 全面审计修复 — 键盘/印章库/右键/资源/CSP 加固 #1

Open
wenpai wants to merge 4 commits from fix/audit-hardening into master

4 commits

Author SHA1 Message Date
97c82007ce feat: 撤销/重做工具栏按钮 + 骑缝章比例定位
- 工具栏头部加可见的撤销/重做按钮(#undoBtn/#redoBtn),接 window.History
  undo/redo;此前该两 id 只被 updateUndoRedoButtons 引用却不存在于 DOM,
  撤销/重做只能靠 Ctrl+Z/Y 或右键,发现性差。按钮 disabled 态随命令栈联动。
- 骑缝章位置从硬编码 top:400 改为按页面实际高度垂直居中
  (max(0,(originalHeight-scaledPieceHeight)/2)),修复小页面出界/不同尺寸
  页位置不一致(审计 M1)。

验证(CDP 实测): 按钮初始禁用→命令入栈→undo 启用/redo 禁用→点撤销翻转→
点重做翻转,全部正确;骑缝片 top=(1584-245)/2=670 精确居中、在界内、非 400。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 12:07:40 +08:00
a055b44df7 docs: 添加 OSS/CDN 部署 runbook + 部署脚本
- docs/DEPLOY.md: 阿里云 OSS/COS + CDN 部署流程,含前置条件(域名/备案/
  AK/DNS 归属)、部署包白名单、分层缓存策略、上线验收清单、腾讯云/CF 备选
- deploy.sh: 只同步白名单文件(index.html/src/vendor/public)到 OSS,
  按资源类型设缓存头(vendor 长缓存/app 代码 no-cache),支持 --dry-run

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 11:55:35 +08:00
c9c85d5678 docs: 添加 2026-07-21 全面审计报告
记录 4 路并行审计发现、修复清单、刻意不改项及理由、安全结论、通用教训。
配套 cluster-recall #5785。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 10:45:08 +08:00
db73b34182 fix: 全面审计修复 — 键盘/印章库/右键/资源/CSP 加固
4 路并行审计(core/modules/UI/security)交叉验证后修复:

HIGH
- main.js: 键盘快捷键加输入框焦点守卫,修复坐标框 Backspace 误删印章、
  方向键误移、旋转框负号无法输入、文本框 Ctrl+C/V/S 被劫持
- seal-library.js: getSavedSeals 校验数组+逐项过滤脏数据,防脏 localStorage
  打死印章库读/写/渲染三条路径

MED
- seal-library.js: loadAndApplySeal 补 onerror,成功 toast 移入 onload,
  修复图片损坏时假报成功+state 静默不一致
- canvas-manager.js/context-menu.js: 开 fireRightClick,右键前 findTarget
  命中置活动对象,修复右键菜单不出现/作用于旧对象
- responsive.js: 移除永不生效的 _canvas 触摸手势死代码 + body 全子树
  MutationObserver 常驻空转(fabric 自带触摸兜底)

LOW
- exporter/batch-processing/batch-operations/settings: blob URL 延迟撤销,
  修复部分浏览器下载失败
- batch-processing.js: 下载名统一走 generateSafeExportFilename

加固
- index.html: CSP 加 object-src 'none'; frame-ancestors 'none'
- security.js: 补 escapeHtml() 纵深防御
- 删除遗留 tmp-global-patch-test-a.js

验证: 语法全检 + 5 条功能流回归(盖章/签名/批量/端到端/截图) + 无 CSP 违规

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 10:43:48 +08:00