Visual Studio 中的项目不可信?

2024-06-19

打开最近下载的项目时,Visual Studio 2013 会简短警告您仅打开来自可靠来源的项目。开设项目有哪些风险?项目在编译之前会对您的系统造成任何损害吗?可能会造成什么损害?在实际从“不可信”来源打开项目之前,您应该注意哪些指标? (不是我能想到的)


Visual Studio 中的攻击面

Visual Studio 中存在许多攻击媒介。所有这些都是设计使然。我们开发人员希望在构建过程中完全控制我们的系统。不幸的是,当我们说“我想在构建时删除缓存目录的内容”,这也意味着恶意项目文件可以从任何地方删除任何内容。或者更糟。妥协的办法是“嘿。我们已经给了你王国的钥匙,但我们不承认这个项目。你确定要打开这个吗?如果它做了一些愚蠢的事情,我们不承担任何责任”您提到的警告消息。

现在考虑许多开发人员以管理员身份运行 Visual Studio。

以下是其中一些攻击媒介:

构建前和构建后事件
在最简单的形式中,不受信任的项目可以执行会删除文件的预构建事件。或者更糟。几乎任何事情都可以在构建事件中执行。这是编译时发生的 101 件事。

项目开放时执行
Visual Studio 项目文件只不过是大型 MSBuild 配置。当您打开项目时,Visual Studio 会执行一些 MSBuild 目标,所有这些都是为了支持该工具。这些目标包括 Compile、ResolveAssemblyReferences、ResolveCOMReferences、GetFrameworkPaths 和 CopyRunEnvironmentFiles。如果这些目标中的任何一个存在,则也会执行其中的任务。删除文件,或更糟。

请参阅:“设计时执行”http://msdn.microsoft.com/en-us/library/ms171468.aspx http://msdn.microsoft.com/en-us/library/ms171468.aspx

智能感知
其中一部分tooling上面提到的包括 IntelliSense,它执行CompileMSBuild 中的任务;必须执行 CSC/VBC 才能获得所有 IntelliSense 功能。由于 IntelliSense 的性质,此任务会在您工作时重复执行,而不是上面的机会仅在打开时运行一次。

请参阅:“设计时 IntelliSense”http://msdn.microsoft.com/en-us/library/ms171468.aspx http://msdn.microsoft.com/en-us/library/ms171468.aspx

隐藏在 MSBuild 的其他地方
您将在一天中手动执行大量其他常规 MSBuild 目标,包括构建、重建、测试和清理。是的,请记住,即使clean是构建目标,所以Clean不仅可以删除旧的内容\bin目录。

NuGet
恶意项目还可能通过 NuGet 暴露系统。虽然包恢复不会成为问题,packages.config可以指定不同的存储库源。然后,当您安装新包时,例如install-package jquery,NuGet 将从不受信任的替代中检索 jQuery 包,而不是从 nuget.org 中检索。这个恶意 jQuery 包中可能包含各种其他“好东西”,这些“好东西”将作为包安装的一部分执行。

这不是 NuGet 的安全漏洞,因为“您”指定了备用包源;这是设计使然,例如拥有自己的内部包存储库的公司。

你可以做什么?

归根结底,你能对此做些什么呢?答案实际上是不要打开来自不受信任来源的项目。该项目的packages.config文件可以在打开之前进行分析,但最大的暴露是通过 MSBuild。除非您非常擅长阅读 MSBuild 架构,否则我会避开。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual Studio 中的项目不可信? 的相关文章

随机推荐

  • 从 float 转换的 Ruby Time 对象不等于原始 Time 对象

    time Time now fvalue time to f return time Time at fvalue 有人可以解释为什么上面的表达式返回 false 吗 如何从 float 创建一个与原始时间变量匹配的新 Time 对象 Th
  • 将我的应用程序部署在 Tomcat 的根目录下

    我有我的应用程序的战争文件 我需要在根级别部署它 当前的网址是http localhost 8080 war name application name 您有几个选择 取出开箱即用的ROOT 从 tomcat 目录并将您的 war 文件重命
  • Spring Security 通过并发登录尝试将用户锁定

    我是安全新手 遇到了一个问题 该问题导致用户帐户被锁定 只有重新启动应用程序才能修复它 我有一个带有 spring security 4 0 2 RELEASE 应用程序的 spring boot 1 3 0 BUILD SNAPSHOT
  • 如何使用 Google 脚本将数据添加到 Google 表格中的特定行

    在我的 Google 表格中 我将索引放在名为 colorRow 的变量中 我只是想向工作表中的该行添加一些数据 但数据不断进入页面下方的其他行 我究竟做错了什么 var data Some more fields in data arra
  • Google Data Studio - 刷新嵌入式网站上的数据

    我已在 html 页面上嵌入了 data studio 报告 我在一段时间后刷新 iframe 但报告没有更新 嵌入页面上的报告只能通过访问数据工作室网站上的报告并单击 刷新数据 图标来更新 如何在不手动点击 Data Studio 网站上
  • 交替 div 使图像向左(偶数)或向右(奇数)

    我正在尝试更好地排列图像 而不仅仅是一列中的图像 请参阅附件中的示例 每篇文章的图像可以位于左侧和右侧 这是我的代码 HTML section class content list page section
  • 如何在不循环的情况下添加组ID?

    我有数据框 例如 productid ordernum p1 10 p2 20 p3 30 p4 5 p5 20 p6 8 我想添加另一列 称为 groupid 它将产品按顺序分组在一起 一旦 sum ordernum 达到 30 分配一个
  • Numba 环境变量未通过 .numba_config.yaml 设置[重复]

    这个问题在这里已经有答案了 可以为 numba 设置一些环境变量 如文档中指定的 https numba pydata org numba doc dev reference envvars html https numba pydata
  • 快速有效地计算已知特征值的特征向量

    我的问题的简短版本 计算矩阵特征向量的最佳方法是什么A 如果我们已经知道属于特征向量的特征值呢 更长的解释 我有一个很大的随机矩阵A由于它是随机的 因此具有非负左特征向量x 这样A Tx x 我正在寻找快速有效的方法来数值计算这个向量 最好
  • iPad 2 检测

    由于我没有 iPad 2 因此我需要知道调用 UIDevice currentDevice model 时它返回什么 我以为它只返回 iPad 但看来我错了 有人可以告诉我吗 Thanks 检查是否有带摄像头的 iPad BOOL isIP
  • Angular 4 在 @ViewChild 上使用 setter

    我有一个演示here https stackblitz com edit angular dgmnlf file app 2Fchild component ts 我正在尝试使用 ngIf 将元素添加到 DOM 后获取该元素的高度 我试图通
  • PHP PDO 使用 bindParam 第一个参数(不带冒号)[重复]

    这个问题在这里已经有答案了 请检查这个 user id int GET user id sql DELETE FROM users WHERE user id user id query db gt prepare sql query gt
  • 构造函数参数与方法参数? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 这确实是一个非常简单的问题 我希望得到 情况决定 的答案 然而 我想知道人们对将参数传递给构造函数或方法有何想法 我将尝试为我的问题设置背景 p
  • 根据选择值显示/隐藏字段

    我试图根据我选择的字段之一的值显示和隐藏一些表单字段 我希望使用数组来保存每个选择值应该显示的内容和不应该显示的内容 以将我从大量的 switch 语句中拯救出来 但无法弄清楚如何做到这一点 我正在使用 PHP 和 jQuery 任何帮助都
  • ActionBar 下拉微调器项目默认为第一项

    我试图设置默认情况下需要在微调器中选择的项目的索引 但它始终默认为 0 第一项 actionBar setDisplayShowTitleEnabled false actionBar setNavigationMode ActionBar
  • auto、decltype(auto) 和尾随返回类型

    之间有区别吗 template
  • 使用 Swift 将自定义字体添加到 macOS 应用程序

    我遵循了一堆教程 但它不起作用 我只是想向 macOS 应用程序添加自定义字体 我基本上尝试过 添加了 ttf字体文件到我的项目 目标会员资格已设置 我还确保使用复制文件Copy Files within Bundle Phases 编译后
  • 解释 System.Diagnostics.CodeAnalysis.SuppressMessage

    我在某些应用程序中有这种代码 来自微软 assembly System Diagnostics CodeAnalysis SuppressMessage Microsoft Naming CA1702 CompoundWordsShould
  • 如何从 .bat 运行 .vbs

    创建了一个广泛的批处理脚本程序来处理一些自动文件管理和打印 我需要调用一个 vbs 文件来执行它的 sendkeys 操作 有没有办法在不冻结程序的情况下完成此任务 我试过了START WAIT my vbs并且脚本在进入 vbs 时冻结
  • Visual Studio 中的项目不可信?

    打开最近下载的项目时 Visual Studio 2013 会简短警告您仅打开来自可靠来源的项目 开设项目有哪些风险 项目在编译之前会对您的系统造成任何损害吗 可能会造成什么损害 在实际从 不可信 来源打开项目之前 您应该注意哪些指标 不是