复现步骤
- 将
Newuser max embedded media 设置为 0
- 这可以正确地阻止新用户在上传图片之前上传图片

- 配置
Embedded media post allowed groups
- 从允许列表中排除某些组
- 当用户不在允许的组中上传图片时:
- 图片可以显示在编辑器中
- 仅在提交帖子时会被阻止

- 问题
- 在编辑过程中,用户可以复制已上传图片的链接来绕过上传限制并发布它
预期行为
我们的目标是阻止用户上传图片。不在允许组中的用户根本不应该能够在编辑器中插入任何嵌入式媒体——它应该在上传时阻止上传,就像应用 Newuser max embedded media = 0 时一样。
否则,他们可以复制已上传图片的链接,从而有效地绕过上传限制。
我不知道这是不是一个新问题,但我们刚刚也注意到了:
看起来图片上传到 S3 存储桶(cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com)在图片被粘贴后立即发生。嵌入检查要等到帖子提交时才会进行,但那时图片已经存在于存储桶中,并且可以使用以下任何一个链接访问:
- 它的 S3 URL
- 它的 Discourse 短 URL
- 它的生成的
upload:// URL(即,只需从自动生成的上传嵌入代码的开头删除 !)
我担心这意味着即使是失败的嵌入(即随后被拒绝的上传尝试)也仍然上传到了存储桶,并且在不知不觉中占用了网站的存储配额,即使上传者认为它被拒绝了,并且其他人看不到该上传。