Skip to content

fix(playground): validate uploaded media - #61

Open
JX05120LLL wants to merge 1 commit into
alibaba:mainfrom
JX05120LLL:fix/playground-upload-validation
Open

fix(playground): validate uploaded media#61
JX05120LLL wants to merge 1 commit into
alibaba:mainfrom
JX05120LLL:fix/playground-upload-validation

Conversation

@JX05120LLL

Copy link
Copy Markdown

改动说明

本 PR 为 Playground 上传接口补充服务端媒体校验。

  • 按生成模式限制上传媒体:
    • i2i / i2v:仅允许图片
    • r2v:允许图片或视频
    • v2v:仅允许视频
    • t2v:不允许上传媒体
  • 服务端仅接受白名单中的文件扩展名。
  • 限制单个文件最大为 100 MiB。
  • 根据文件内容特征校验图片/视频类型,不信任客户端传入的 MIME Type。
  • 对无效文件、类型不匹配或模式不兼容的上传返回明确的 400 Bad Request
  • 对超过大小限制的文件返回明确的 413 Payload Too Large
  • 前端上传请求会同步提交当前选择的生成模式。

问题复现

修改前,客户端可以通过伪造 MIME Type、使用不支持的扩展名,或在不兼容的生成模式中上传媒体文件。

可复现示例:

  1. i2i 模式上传视频文件。
  2. 将非媒体文件重命名为允许的扩展名后上传。
  3. 上传有效图片,但伪造客户端 MIME Type。
  4. 上传大于 100 MiB 的文件。

修改后,服务端会依据生成模式、扩展名和文件内容进行校验;无效上传会返回明确的 400413 错误。

兼容性与风险

  • POST /playground/upload 现在要求 multipart 请求携带 mode 字段;本 PR 已同步更新项目内前端调用。
  • 当前仅接受已加入白名单且可识别文件特征的图片/视频格式;未支持的格式会被主动拒绝。
  • 其他直接调用该接口的旧客户端需要补充 mode 参数。

@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@JX05120LLL

Copy link
Copy Markdown
Author

Hi maintainers, I have completed the CLA signing for my GitHub account.
Could you please approve the pending workflow and rerun the CLA check when convenient? Thanks!

@JX05120LLL

Copy link
Copy Markdown
Author
5 已经签

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.

3 participants