我需要你关于代码库管理和安全的建议。我有一个单曲,其中包括:
几个后端services.
描述的web app.
我认为让每个开发人员担任每个职位(自由职业者、实习生、前台.)可能是危险的。访问所有的代码基。
例如,前端自由职业者应该能够在不阅读代码的情况下执行后端服务。或者具有JS能力的设计师只能更新登陆页面。
是不是太过分了?是否有人已经尝试过使用新的git subtree来保存一个单一的项目和它的所有优点,并将其存储库中的每个项目分开?这样,我就可以通过存储库设置权限,并在两个级别上使用CI:
上的功能测试
但这并不能解决执行权的问题。欢迎所有的建议或资源。
发布于 2021-08-06 02:22:33
正如gitnamespaces(7)中所概述的,能够读取存储库的用户可以读取其中的所有内容:
-- fetch和push协议的设计并不是为了防止一方从另一方窃取不打算共享的数据。如果您有需要保护不受恶意对等方影响的私有数据,最好的选择是将其存储在另一个存储库中。这既适用于客户机,也适用于服务器。
如果您需要单独的访问控制,则需要有不同的存储库。您可能可以使用git subtree将这些存储库合并到一个monorepo中,但当然,任何读取了对monorepo的访问权限的人都将对其中的每个部分进行读取访问。
此外,提供对存储库的只执行访问是不可能的。对于解释语言,需要用户有权读取文件,因为解释器必须读取它。即使是编译语言,大多数现代操作系统也需要读取权限才能执行二进制文件。如果您使用的是一种编译语言,您可以在CI中为那些没有访问该存储库的人提供二进制文件,但是这将是一个麻烦,而且一个专用的用户仍然可以对二进制文件进行反编译。
我应该指出,大多数大公司处理这个问题的方法是使用单独的存储库进行单独的访问,并使用NDA或其他法律机制来确保代码不被公开。毕竟,您信任您的员工编写的代码是原始的,质量好,而且不是恶意的(想必您是在补偿他们并相应地对待他们)。因此,允许开发人员访问他们需要处理的项目的整个源代码,同时也信任他们不会将其公开给其他人,这通常是合理的。
https://stackoverflow.com/questions/68652701
复制相似问题