feat(security): 凭据引用间接层 + owner-only 校验 + 脱敏报错 + 授权流(借 DSH credentials)
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- rust, yaml
- Lĩnh vực
- authentication, security
Hướng nghiên cứu
Start by reading src/config.rs and mapping how credentials reach configuration, requests, and logs; the issue provides no specific tests or other Rust entry points. Then plan how credential references, owner-only local storage, redacted errors, and authorization flows fit those paths. Done means configuration and logs never expose secret values, insecure files are rejected with repair guidance, rotations take effect on the next request, and declined authorization is distinguishable from infrastructure failure.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
场景 gap 单(okguitar 提报)· 优先级 P1 · 依赖:无 · 来源:DSH credentials 包借鉴(jeffkit 拍板跟进)
基线 HEAD = 4e1aee98。
Summary
recursive 的凭据面 = 进程 env + src/config.rs 单点 api_key(Debug 已打码);无密钥引用间接层、无本地凭据文件的权限硬防护、无授权流。相关但不重合:#85(租户身份模型)/ #67(认证告警死代码)。
参照 DSH packages/credentials/:
- 两个不相交键空间 + 无值视图:
CredentialRef(env 名)与CredentialKey(<scope>/<id>,scope=注册方)分离(credentials/credentials/src/types.ts:13-29);CredentialInfo(configured/source/writable)结构上没有任何能装值的槽(:62-74)——读半边可安全过前端/Remote。 - 四层信任排序 + owner-only 硬防护:继承环境(只读、胜出)>
$HOME/.credentials.yaml(可写)> cwd/.env > home/.env(credentials-local/src/index.ts:1-36);读前拒绝组/他人可读文件(0o077 检查,报错附 chmod 600 提示,:96-146);YAML 解析报错只报 code+行列、不回显源行(:153-164,行内有密钥)。 - 逐操作解析、空值即缺席:不跨操作缓存——轮换后下一请求即生效无需重启;空串绝不冒充已配置(
index.ts:154-185)。 - 授权流注册表:一 key 仅一个 flow(防格式互踩)、同时仅一次尝试;成功以"提交确实发生"验证(
authorization/src/index.ts:120-124,185-220);AuthorizationDeclinedError区分"人说不要"与"界面坏了"(:69-84);authorization/settled终态事件让第二界面知晓结束。
建议
- 凭据引用语法:配置/会话参数只写引用,解析在消费点逐操作进行;
- 本地凭据存储照 DSH 规格:owner-only 校验 + 脱敏解析报错 + 四层信任排序;
- 授权流(首配/轮换)带 declined/故障区分与 settled 终态事件;
- 前端只暴露无值视图(结构上无值槽)。
验收
- 配置与日志全程不出现密钥值(含解析错误路径);组/他人可读的凭据文件被拒并给出修复指引;
- 轮换后下一请求即生效(无需重启进程);
- 授权拒绝与基础设施故障在错误码级可区分。
- Ngôn ngữ chính
- Rust
- Star
- 4
- Fork
- 0
- Merge trung bình
- 5 giờ 32 phút
- Pull request đã merge (30 ngày)
- 7
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Không có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của jeffkit/recursive
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 20/100
jeffkit/recursive#134 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
jeffkit/recursive#132 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
jeffkit/recursive#88 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 58/100
jeffkit/recursive#87 · 11 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
jeffkit/recursive#86 · 6 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của jeffkit/recursive
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
-
curator: add tutros/sbxmĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 75/100
ajeetraina/awesome-docker-sbx#220 ·
-
`helios / deploy`: switch zone wait in `deploy.sh` has almost no headroom over healthy startup timesCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởTest Flake
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
oxidecomputer/omicron#11453 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
microsoft/adaptive-apps#58 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 1 ngày