运行隔离代码的简要提示

💡 原文英文,约600词,阅读约需2分钟。
📝

内容提要

本文介绍了代码运行时的隔离动机和选择,包括轻量级环境、云计算服务节点、虚拟机或模拟器。使用Podman Desktop创建隔离环境,并演示了构建和运行代码的过程。最后,介绍了删除容器的方法。

🔎

延伸解读

隔离程度的选择依据

文章指出,运行代码时所需的隔离程度取决于信任程度和主机硬件等因素。对于大多数开发者运行的多数代码,可以假设软件并非专家级恶意,但可能存在会破坏本地系统其他配置的缺陷。因此,选择隔离方案时需权衡需求:既要避免影响主机,又不必追求过高的安全等级。

为何轻量级环境与虚拟机不适用

文章提到,Python 虚拟环境等轻量级环境由于缓存和链接,隔离不够充分;而云计算服务节点和虚拟机(如 QEMU、VirtualBox)虽然能提供更强隔离,但开销和成本过高。鉴于需求是隔离而非极强安全要求,这些方案都不划算,因此作者转向 Podman 容器。

Podman 容器的实用操作

文章演示了使用 Podman 创建隔离环境:通过 podman run 启动 Ubuntu 22.04 容器,并可用 podman start 重新进入、podman exec 开启额外 shell。在容器内安装 Git 和 C 编译器后,克隆 Spin 仓库并构建,遇到 yacc 缺失时安装 Bison 解决。最后用 podman rm -f 删除容器。

验证隔离环境有效性的方法

文章通过 Spin 工具验证隔离环境:先运行 sort.pml 示例确认无错误,然后故意将第 45 行的 nextval < myval 改为 nextval > myval,再运行 Spin 显示错误数为 1,从而确认工具正常工作。这展示了在隔离环境中安全测试代码修改的流程。

❓

Q&A

为什么需要在隔离环境中运行代码?

在隔离环境中运行代码的动机包括尝试代码和编写安装说明,以确保不干扰主机系统。

Podman Desktop是什么?

Podman Desktop是一个与Docker兼容的Linux容器工具,用于创建和管理隔离环境。

如何使用Podman创建隔离环境?

安装Podman Desktop后,可以通过命令'podman run -it --name demo ubuntu:22.04 bash'来创建隔离环境。

在隔离环境中如何构建Spin软件?

在隔离环境中,首先安装Git和C编译器,然后克隆Spin仓库并使用'make'命令构建项目。

如何解决构建Spin时缺少yacc的问题?

可以通过安装Bison来解决构建过程中缺少yacc的问题。

如何删除Podman中的容器?

使用命令'podman rm -f demo'可以删除Podman中的容器。

🏷️

标签

➡️

继续阅读