Skip to content

公开部署前收紧链接与并发边界 - #4

Merged
Change3333 merged 3 commits into
mainfrom
agent/harden-public-endpoint
Jul 30, 2026
Merged

Change3333 merged 3 commits into
mainfrom
agent/harden-public-endpoint

Conversation

@Change3333

@Change3333 Change3333 commented Jul 30, 2026

Copy link
Copy Markdown
Owner

做了什么

  • 仅接受 douyin.com 及其子域名的 HTTP(S) 链接,拒绝相似域名、本机地址和其他协议
  • 校验短链响应头、页面内跳转目标和浏览器主页面后续导航
  • 修复中文分享文本中链接后标点与正文被误识别为 URL 的问题
  • 限制请求体与分享文本长度,规范 API 的 400、413、422、429 状态码
  • 同一进程只允许一个 Playwright 提取任务,繁忙时快速返回,避免公开服务被并发拖垮
  • 为页面和 API 增加 CSP、防嵌入、防 MIME 嗅探、Referrer 与 Permissions Policy 响应头
  • 新增 11 项安全与接口回归测试

为什么需要

公开部署后,旧接口会接受任意 http(s) 地址并由服务器访问,存在被当作 SSRF 跳板的风险;同时每个请求都会启动浏览器,突发并发容易耗尽服务器资源。当前线上实例还直接暴露 Werkzeug 开发服务器,因此此 PR 先收紧应用层输入、运行和浏览器边界,合并后再切换到 Gunicorn + Nginx + HTTPS。

用户体验影响

  • 正常的抖音视频、图文长链接和 v.douyin.com 分享短链继续支持
  • 非抖音链接会立即提示输入错误
  • 服务繁忙时明确提示稍后重试
  • 超大请求会被拒绝

验证

python -m unittest discover -s tests -v
Ran 11 tests
OK

后续

合并后通过 Gunicorn + Nginx + HTTPS 部署到公开服务器,并在真实抖音分享链接上做一次线上冒烟测试。HSTS 和上游服务器信息隐藏应由 HTTPS 反向代理配置。

@Change3333
Change3333 marked this pull request as ready for review July 30, 2026 04:50
@Change3333
Change3333 merged commit 941d682 into main Jul 30, 2026
2 checks passed
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