Visual Studio Code 中的“工作区信任”是什么?

Visual Studio Code v1.57 于 2021 年 5 月发布,具有新的“Workspace Trust”功能。这是一种安全机制,可帮助您在不信任存储库的来源时避免意外执行代码。
Workspace Trust 默认处于活动状态。当您打开一个新文件夹时,Code 将显示一个对话框,要求您信任其中的文件。如果你说是,编辑器将正常运行。如果您按否,Code 将进入一个新的“受限模式”,功能会减少。
什么在受限模式下被禁用?
受限模式旨在防止不受信任的代码运行。执行文件的 Visual Studio 功能将被禁用,以帮助保护你免受你尚未完全审查的威胁。
调试功能已关闭,以防止您意外启动下载的可执行文件。 Visual Studio 还将禁用工作区文件中定义的任务。 .vscode 文件中的任务可以运行二进制文件和脚本,因此包含一个的 repo 存在安全风险。
任何可以运行代码的用户扩展都将被禁用或置于功能受限状态。一些工作区设置也可能被覆盖,以限制下载的 .vscode 文件的范围。
使用受限模式可让您检查新下载项目的关键部分。您有机会验证没有可疑行为,而无需冒实际代码执行的风险。退出受限模式后,将应用您的常规设置并重新激活调试。

启用 Workspace Trust 后,每次在不受信任的位置打开新文件夹时,您都会看到提示。您需要选择是启用所有功能还是在受限模式下打开工作区。
何必呢?
Visual Studio Code 已经发展成为一个强大的代码编辑器,支持数以千计的扩展。其中许多第三方工具会自动运行并将它们自己添加到您的工作区设置文件中。此文件通常提交给源代码管理,因此可以与团队成员共享。
可以想象,一个狡猾的不良行为者可以创建一个看起来真实但在加载到编辑器中时运行恶意代码的存储库。 Workspace Trust 是对这种可能性的回应。当您检查开源软件和从第三方收到的其他代码时,它会为您提供更高的安全性。
禁用工作区信任
Workspace Trust 可帮助您避免潜在危险的意外代码执行。使用该功能可以为您提供额外的防御层来抵御不熟悉的存储库。尽管如此,如果您经常使用来自新来源的代码,您可能会发现这些提示很烦人。
您可以通过将 security.workspace.trust.enabled 设置为 false 来完全禁用 Workspace Trust。您可以通过单击文件 > 首选项 > 设置并搜索“工作区信任”在 UI 中找到它。该复选框将显示为“Security > Workspace > Trust: Enabled”。如果您只想在没有 Workspace Trust 的情况下一次性启动,请添加 --disable-workspace-trust 命令行标志。
自定义工作区信任
Workspace Trust 提供了一些设置,可让您微调其行为。使用上述过程在 UI 中查看 Workspace Trust 设置。
“空窗口”控制当您使用没有打开文件夹的窗口时发生的情况。当复选框被选中时,窗口将被默认视为受信任的。否则,您需要像信任普通文件夹一样手动信任它。

“不受信任的文件”设置定义了如果您在受信任的窗口中从不受信任的位置文件 > 打开文件时会发生什么。默认行为是在继续之前提示。您可以将其更改为始终打开文件或强制其进入自动不受信任的新窗口。
另一个设置可让您覆盖扩展对 Workspace Trust 的响应方式。这必须在您的 settings.json 文件中手动设置。添加一个以 JSON 对象作为值的 extensions.supportUntrustedWorkspaces 键。添加扩展 ID 作为此对象中的键。每个扩展都可以将 true、limited 或 false 作为其值。
{
"extensions": {
"supportUntrustedWorkspaces": {
"my-extension": true
}
}
}列为 true 的扩展将始终启用,即使在不受信任的工作区中也是如此。带有 false 的扩展只会在受信任的工作区中加载。 limited 扩展将添加到不受信任的工作区,但禁用“受信任”功能。您将无法使用这些扩展程序提供的任务。
管理可信文件夹
您可以在 Visual Studio Code 中查看和管理您标记为受信任的文件夹。按 Ctrl+Shift+P 调出命令面板。搜索“工作区信任”并从菜单中选择“工作区:管理工作区信任”项。
此屏幕显示当前窗口的信任状态。您可以通过按“不信任”切换到受限模式。或者,如果您当前处于受限状态,请按“信任”按钮启用所有功能。

“受信任的文件夹和工作区”部分列举了您标记为受信任的所有目录。您可以通过单击并按右侧的删除“X”按钮来撤销位置的信任。
信任由所有子目录继承。信任诸如 /home/me/projects 之类的顶级文件夹将意味着您的所有存储库都会自动受到信任。这会损害 Workspace Trust 系统的有效性。
结论
Workspace Trust 是面向 Visual Studio Code 用户的一种很有前途的新安全保护。 IDE 意外执行代码的危险才刚刚开始出现。虽然有些人可能会觉得信任提示令人沮丧,但它们可以帮助保护您的机器免受危险来源的侵害。
您不太可能希望工作区长时间处于受限模式。虽然您仍然可以查看和编辑文件,但您将失去许多 Visual Studio Code 最强大的功能。最好检查存储库中的可执行文件、构建脚本和 .vscode 文件,检查是否存在任何危险,然后在确定其行为符合预期后信任该位置。
相关文章:
- 这个新的 Canonical 功能解决了我使用在线生产力应用程序时遇到的最大问题
- 在 Ubuntu 18.04/19.10 中启用“2×2”、“3×3”工作空间网格
- 如何让您的应用程序在 Ubuntu 22.04 中的指定工作区中启动
- 如何在 Ubuntu 22.04 中为每个工作区设置不同的壁纸
- 在 Ubuntu 22.04/Fedora 36 中将“Activities”替换为当前工作空间名称
- GNOME 45 中左上角的“活动”替换为工作区指示器
- Eclipse Che - 下一代云 IDE 和工作区服务器
- 如何在 Ubuntu 14.10 中恢复工作区
- 如何在 Ubuntu 中实时预览另一个工作区
- Eclipse Che – 下一代开发人员工作区服务器和云 IDE
- Alt+Tab 仅在 GNOME Shell 中的当前工作区上切换 Windows
- 我如何整理我的数字工作空间
- 使用 Google Workspace 进行 Web 开发的 9 种最佳方法
- 如何将 ONLYOFFICE Workspace 作为 Docker 容器运行 |
- 在使用一个工作区的同时预览另一个工作区