Skip to content

修复:增强下载端点路径/文件名校验并清理示例敏感配置#711

Open
wjc2821296948 wants to merge 2 commits intoEvil0ctal:mainfrom
wjc2821296948:main
Open

修复:增强下载端点路径/文件名校验并清理示例敏感配置#711
wjc2821296948 wants to merge 2 commits intoEvil0ctal:mainfrom
wjc2821296948:main

Conversation

@wjc2821296948
Copy link
Copy Markdown

Motivation

  • 修复下载接口对 platformvideo_id、文件名前缀等输入直接信任导致的路径穿越与任意文件覆盖风险。
  • 避免直接信任远端返回的 Content-Type 生成图片扩展名导致的不安全扩展或错误后缀。
  • 移除仓库中示例配置携带的真实 Cookie / msToken,降低敏感凭据泄露风险。

Description

  • app/api/endpoints/download.py 中新增并使用 sanitize_nameresolve_download_dirbuild_safe_file_pathget_safe_image_extension 等辅助函数对平台、类型、文件名和扩展名进行净化与白名单校验,并基于 Path.resolve() 校验目标目录与文件路径以防路径逃逸。
  • 将下载请求的默认头部统一为 DEFAULT_HEADERS,并在 fetch_data / fetch_data_stream 中使用该默认值以避免不一致行为。
  • 将原先基于不可信输入拼接的文件路径改为通过上述安全函数构建,并在返回 FileResponse 或传入 merge_bilibili_video_audio 时使用安全的路径字符串。
  • 清理示例配置文件 crawlers/tiktok/web/config.yamlcrawlers/douyin/web/config.yaml 中的 Cookie / msToken 示例值,替换为显式占位符 PLEASE_REPLACE_WITH_YOUR_OWN_COOKIE / PLEASE_REPLACE_WITH_YOUR_OWN_MSTOKEN,以避免敏感凭据被误提交或复用。

Testing

  • 在修改后运行了 python -m compileall app crawlers,所有改动相关模块均能成功编译。
  • 进行了仓库差异检查以确认仅修改预期文件 app/api/endpoints/download.py 与两个爬虫配置样例文件,变更符合安全加固目标。
  • 编译日志中存在仓库既有的 SyntaxWarningapp/web/views/ViewsUtils.py),该问题为既有警告且未由本次改动引入。

…rabilities

修复:增强下载端点路径/文件名校验并清理示例敏感配置
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