测验:密钥的处理
当应用程序启动时,它会读取.env并立即删除该文件。你的秘密受到保护了吗?
- 受保护。该文件已经被删除,所以即使稍后再回来也没有人可以读取它。
- 受保护。环境变量由内核加密。
- 不受保护。如果将该值输入到环境变量中,则在进程生存期间,它将继续被读取为
/proc/<pid>/environ。 - 如果文件权限为600,则该文件受到保护。
我从Dockerfile中收到了ARG NPM_TOKEN,创建了.npmrc,最后将其删除为rm ~/.npmrc。安全吗?
- 这不安全。文件保留在较低层中,值保留在构建历史记录中。
- 很安全。最后一层没有文件
- 很安全。 ARG 不保留在图像中
- 很安全。如果您在构建时没有使用挤压选项,则没有问题。
当我在构建过程中绝对需要私有注册表凭据时,正确的方法是什么?
- 将其写为
ARG,最后删除rm文件以删除所有痕迹。 - 将 BuildKit 秘密安装与
RUN --mount=type=secret,id=npmrc,target=/root/.npmrc结合使用 - 输入值
ENV,构建完成后,使用docker image rm清理中间映像。 - 提前放入基础镜像中
找到提交到存储库的 API 密钥。正确的行动顺序是什么?
- 历史清理→处置→影响调查
- 处置→影响调查→历史总结
- 影响调查→历史清理→处置
- 只要整理历史就足够了。
关键轮换未按计划进行的最常见根本原因是什么?
- 因为身高矮
- 没有秘密存储
- 该代码假定只有一个有效密钥。
- 旋转周期太长
关于秘密检测工具的局限性,哪种解释是不正确?
- 预提交钩子被
--no-verify绕过,因此钩子是一个便利设备,控制设备是服务器检查。 - 该规则很容易听出格式清晰的值,例如
AKIA和sk_live_,而错过内部格式。 - 如果扫描仪通过了,就可以保证存储库中没有秘密。
- 扫描器只能看到代码存储库,不能看到 wiki、问题附件或聊天日志。