Skip to content

fix: harden share expiry, download token, quota SQL, and CORS#496

Merged
vastsa merged 1 commit into
masterfrom
fix/pr494-security-patches
Jul 23, 2026
Merged

fix: harden share expiry, download token, quota SQL, and CORS#496
vastsa merged 1 commit into
masterfrom
fix/pr494-security-patches

Conversation

@vastsa

@vastsa vastsa commented Jul 23, 2026

Copy link
Copy Markdown
Owner

Summary

基于 #494 的安全修复思路,在 review 后落地增强版补丁。

Related: #494

  • 统一 expire_style 白名单校验(share_text / share_file / complete_upload / presign_upload_init
  • 下载 token 接受当前窗口与上一窗口,修复边界竞态
  • 配额 SQL 占位符按 Tortoise capabilities.dialect 适配(修复原 PR 中 conn.engine 无效探测)
  • 远程存储流式下载增加 session 关闭兜底
  • CORS 关闭无效的 allow_credentials=True(与 allow_origins=["*"] 冲突)
  • 补充回归测试

相对 #494 的改进

  1. SQL 方言探测改为 capabilities.dialect + db_config.engine 回退
  2. 抽取 validate_expire_style(),避免继续漏检
  3. 注释与实现细节修正
  4. 增加 tests/test_pr494_security_patches.py

Test plan

  • python3 -m pytest tests/test_pr494_security_patches.py tests/test_issue_486_storage_quota.py tests/test_issue_482_share_usage.py -q
  • 手动验证:禁用 forever 后文本分享/分片完成被拒绝
  • 手动验证:窗口边界附近下载 token 仍可用
  • 手动验证:前端 Bearer 鉴权不受 CORS credentials 变更影响

Apply the useful security fixes from PR #494 with review corrections:
validate expire_style through a shared helper, accept previous download
token window, detect SQL dialect via Tortoise capabilities, close remote
download sessions on client abort, and disable invalid CORS credentials.
@vercel

vercel Bot commented Jul 23, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
file-code-box Ready Ready Preview, Comment Jul 23, 2026 11:39am

@vastsa

vastsa commented Jul 23, 2026

Copy link
Copy Markdown
Owner Author

关联说明:本 PR 基于 @lichangfeng-1#494 中提出的安全修复方向,在 code review 后落地了增强版实现。

主要差异:

  1. quota.py 方言探测改为 Tortoise capabilities.dialect(并回退 db_config.engine),避免原实现里 conn.engine 实际不存在导致 PostgreSQL/MySQL 占位符修复不生效
  2. 抽出统一 validate_expire_style(),覆盖 share_text / share_file / complete_upload / presign_upload_init
  3. 补充 tests/test_pr494_security_patches.py 回归测试

如果 #494 作者愿意,也欢迎把上述修正回灌到原 PR;当前仓库以本 PR 作为可合入版本继续推进。

@vastsa
vastsa merged commit ae77026 into master Jul 23, 2026
2 checks passed
@vastsa
vastsa deleted the fix/pr494-security-patches branch July 23, 2026 11:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant