如何禁用您不信任的特定 vscode 扩展程序的互联网访问

How to disable internet access for a particular vscode extension you don't trust

VS Code 随着其疯狂的扩展而变得越来越棒,但随着所有这些灵活性和令人敬畏的是安全和隐私风险。

因此我的问题是是否可以完全阻止特定扩展程序访问互联网。

答案似乎是,您不能阻止扩展网络访问:

  • VSCode Issue #52116: Extension Permissions, Security Sandboxing & Update Management Proposal 保持开放。最近有评论者 activity,但我没有看到 VSCode 团队采取任何行动的迹象。

  • 问题 How to fully disable network request from vs code(telemetry, updates, etc.) 报告说设置明显的开关不会阻止 VSCode 发出网络请求。

  • 我做了自己的简单扩展,使用 http 模块发出外部网络请求并且它有效。

  • 我尝试将 http.proxy 设置为 settings.json 中的虚假值,虽然这有效地使 VSCode 本身至少使一个网络操作失败,我的测试扩展没有受到影响。

与此相关,人们可能会问是否有任何系统可以检测或防止恶意扩展行为。答案似乎再次是否定的:

  • 问题Security and Privacy of VSCode extensions及其答案基本上可以归结为"run your own firewall"。

  • 问题 How is VS Code Extension Security Handled? 及其答案归结为 "Microsoft does nothing to ensure extensions are not malicious"。

  • 我个人已将 one extension 上传到 Marketplace。我可以报告说,出现在那里大约需要五分钟;时间不够长,任何人都无法对其进行审查。此外,我在创建 github 存储库之前无意中上传了它,但这并没有造成任何问题,这表明该服务不会进行任何检查以确保 github 上的内容与扩展中的内容相匹配.

总的来说,我觉得这是一个可怕的情况。我做了两件事来保护自己:

  • 我尝试坚持使用下载量大且最近更新的扩展。然后我禁用了自动更新。这样,我 运行 的所有东西在我使用之前都有机会暴露为恶意的。

  • 扩展作为 VSIX 文件分发,它们只是具有不同文件名后缀的 ZIP 文件。如果我有任何怀疑,我会先将其下载为文件并四处寻找。特别检查 package.json 脚本和 Typescript 或 Javascript 源代码(如果有的话)。这当然远非万无一失,但确实如此。