用户文件上传
用户可以上传文件到:
- 项目中的议题或合并请求。
- 群组中的史诗。
极狐GitLab 使用随机 32 位 ID 生成这些上传文件的直接 URL,以防止未经授权的用户猜测 URL。这提供了对包含敏感信息的文件的一些安全性。
用户上传到极狐GitLab 议题、合并请求和史诗中的文件包含 /uploads/<32-character-id>
在 URL 路径中。
下载由未知或未信任的源上传的文件时候要小心,特别是如果文件是可执行文件或脚本。
上传文件的访问控制
- 强制认证检查在极狐GitLab 15.3 中 GA。功能标志
enforce_auth_checks_on_uploads
被移除。- 在 UI 上的项目设置引入于极狐GitLab 15.3。
对于非图片的上传文件的访问:
- 议题或合并请求由项目可见性决定。
- 群组史诗由群组可见性决定。
对于公共项目或群组,任何人都可以通过附件的直接 URL 访问这些文件,即使议题、合并请求或史诗是保密的。对于私有和内部项目,极狐GitLab 确保只有经过身份验证的项目成员才能访问非图像文件上传,例如 PDF。默认情况下,图像文件不受此限制,任何人都可以使用 URL 查看它们。要保护图像文件,请为所有媒体文件启用授权检查,使其仅可由经过身份验证的用户查看。
为图片的认证检查可能会导致通知电子邮件正文出现显示问题。邮件经常从未经极狐GitLab 身份验证的客户端(例如 Outlook、Apple Mail 或您的移动设备)读取。如果客户端未获得极狐GitLab 授权,则电子邮件中的图像会出现损坏且不可用。
为所有媒体文件启用授权检查
非图像附件(包括 PDF)始终需要验证才能查看。您可以使用此设置将此保护扩展到图像文件。
先决条件:
- 您必须具有项目的维护者或所有者角色。
- 您的项目可见性设置必须是私有或内部。
为所有媒体文件配置身份验证设置:
- 在左侧边栏中,选择 搜索或转到 并找到您的项目。
- 在左侧边栏中,选择 设置 > 通用。
- 展开 可见性、项目功能、权限。
- 滚动到 项目可见性 并选择 需要验证才能查看媒体文件。您不能为具有公开可见性的项目选择此选项。
您不能为公共项目选择此选项。
删除已上传的文件
- 引入于 15.3 版本。
- REST API 支持引入于极狐GitLab 17.2。
当文件包含敏感或机密信息时,您应该删除上传的文件。当您删除该文件后,用户将无法访问该文件,并且直接返回 404 错误。
项目所有者和维护者可以使用交互式 GraphiQL 资源管理器访问 GraphQL 端点,删除上传的文件。
例如:
mutation{
uploadDelete(input: { projectPath: "<path/to/project>", secret: "<32-character-id>" , filename: "<filename>" }) {
upload {
id
size
path
}
errors
}
}
没有所有者或维护者角色的项目成员无法访问此 GraphQL 端点。