2

事实证明,tfs 构建系统总是使用相同的构建帐户来获取最新的源代码并执行构建工作。并且这个账号拥有访问所有源代码的最高权限。

因此,只有一个团队项目构建权限的任何人实际上都可以通过创建构建定义来获取所有团队项目的源代码,并将“源设置”设置为 TeamProjectCollection 的根,然后在 MSBuild 发布事件中,执行“XCopy”移动任何远程服务器的源代码。

4

3 回答 3

0

一种解决方案是撤销创建和编辑构建定义的权限,这样您就可以严格控制在何处运行构建。

于 2014-04-30T07:05:44.090 回答
0

这是设计使然。这很糟糕:(

从 microsoft 的文档中,他们告诉您,开发人员被视为受信任的实体。这就是他们的理由:

Installing Team Foundation Build Service increases the attack surface of the computer. Because developers are treated as trusted entities in the build system, a malicious user could, for example, construct a build definition to run arbitrary code that is designed to take control of the server and steal data from Team Foundation Server. Customers are encouraged to follow security best practices as well as deploy defense in-depth measures to ensure that their build environment is secure. This includes developer workstations. For more information regarding security best practices, see the TechNet Article Security Guidance.

这是原始文章

因此,在使用构建服务器时,您总是处于危险之中!正如我在评论中提到的。我写了很多服务器端插件等等来保护一个大公司的tfs环境。确保 tfs 构建环境安全需要大量工作。

于 2014-04-30T06:48:05.473 回答
0

构建服务器是基于团队项目关联的。如果安全隔离很重要,则允许多个项目使用相同的构建服务器是一种实施决策,而不是固有的安全缺陷,请使用具有不同帐户的多个构建服务器。有关团队构建帐户到团队项目设置的详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms253062(v=vs.90).aspx

于 2014-04-30T04:14:11.797 回答