Svn Subversion中基于路径的访问控制的替代方案

Svn Subversion中基于路径的访问控制的替代方案,svn,itar,Svn,Itar,Subversion中是否有基于路径的访问控制的替代方案 我正在处理一个存储库,该存储库包含的文件可能会受到攻击。有几个团队可以访问存储库,但其中一些团队甚至不允许查看ITAR敏感数据,因此我们这里讨论的是读取访问,而不仅仅是提交访问 现在我有几个选择来处理这个问题 第一种方法只是列出所有具有访问限制的文件。问题是,我们需要知道文件名是什么,然后才能将其添加到auth文件中。因此,开发人员创建一个ITAR敏感文件,通过电子邮件将完整路径发送给svn管理员,然后svn管理员将其添加到auth文件中

Subversion中是否有基于路径的访问控制的替代方案

我正在处理一个存储库,该存储库包含的文件可能会受到攻击。有几个团队可以访问存储库,但其中一些团队甚至不允许查看ITAR敏感数据,因此我们这里讨论的是读取访问,而不仅仅是提交访问

现在我有几个选择来处理这个问题

第一种方法只是列出所有具有访问限制的文件。问题是,我们需要知道文件名是什么,然后才能将其添加到auth文件中。因此,开发人员创建一个ITAR敏感文件,通过电子邮件将完整路径发送给svn管理员,然后svn管理员将其添加到auth文件中。只有这样,开发人员才能真正添加和提交文件

另一个解决方案是在顶层有两个目录,例如
general
mil
,它们具有相同的子目录。这样,所有敏感文件进入
mil
,所有其他文件进入
general
。这给了我一个简短的身份验证文件,但缺点是,如果一个文件变得对ITAR敏感,它需要从一棵树移动到另一棵树。我们可以这样做,但这不是最优的

我想要的是基于属性的访问控制。如果我们可以在文件中添加一个属性,比如
mil
itar:reason
,并基于此限制访问,那将是理想的。开发人员可以在首次提交之前或文件变得敏感时添加属性。但是,除非我错过了,否则这是不可能的

那么,有人看到这个问题的其他解决方案吗

Subversion中基于路径的访问控制的替代方案

我不知道基于文件属性的读取访问限制

缺点是,如果文件对ITAR敏感,则需要将其从一棵树移动到另一棵树

这是无法避免的,也无法在没有“竞争条件”的情况下轻松实现自动化:您可以在该文件上设置属性,并让cron作业将通常找到的任何文件移动到mil,但这意味着在cron作业运行之前,任何有权访问mil的人都可以查看该文件

在两个顶级文件夹之间按需移动(类似于分支)更好。
您可以通过以下方式实现移动的自动化:

  • 在文件上设置属性
  • 运行一个,它将检测到该特殊属性并为您执行移动
Subversion中基于路径的访问控制的替代方案

我不知道基于文件属性的读取访问限制

缺点是,如果文件对ITAR敏感,则需要将其从一棵树移动到另一棵树

这是无法避免的,也无法在没有“竞争条件”的情况下轻松实现自动化:您可以在该文件上设置属性,并让cron作业将通常找到的任何文件移动到mil,但这意味着在cron作业运行之前,任何有权访问mil的人都可以查看该文件

在两个顶级文件夹之间按需移动(类似于分支)更好。
您可以通过以下方式实现移动的自动化:

  • 在文件上设置属性
  • 运行一个,它将检测到该特殊属性并为您执行移动

我不确定即使是属性也能做到这一点,因为它们已经过版本控制。因此,如果您添加了一个文件,但忘记立即设置属性,聪明的用户可以检索该文件的早期版本。您必须愿意从转储文件中删除有问题的数据,这当然需要一些停机时间

不管怎么说,如果有人犯了错误,将文件放在错误的位置、错误的回购协议或错误的属性,几乎任何解决方案都会遇到这个问题。如果您知道ITAR文件的某些属性,那么您可以编写一个钩子来防止它们被放入存储库的错误部分。然后,您可以查看基于“已知敏感”路径甚至独立存储库和外部的解决方案


否则,您可以在Apache前面放置一个代理,该代理知道所有敏感文件,而不管这些文件何时被指定为敏感文件,并为未经授权的用户清除流量。这是一个棘手的问题。

我不确定即使是属性也能做到这一点,因为它们已经版本化了。因此,如果您添加了一个文件,但忘记立即设置属性,聪明的用户可以检索该文件的早期版本。您必须愿意从转储文件中删除有问题的数据,这当然需要一些停机时间

不管怎么说,如果有人犯了错误,将文件放在错误的位置、错误的回购协议或错误的属性,几乎任何解决方案都会遇到这个问题。如果您知道ITAR文件的某些属性,那么您可以编写一个钩子来防止它们被放入存储库的错误部分。然后,您可以查看基于“已知敏感”路径甚至独立存储库和外部的解决方案


否则,您可以在Apache前面放置一个代理,该代理知道所有敏感文件,而不管这些文件何时被指定为敏感文件,并为未经授权的用户清除流量。这是一个棘手的问题。

我所说的基于属性的访问控制实际上是忽略路径,让svn查看属性并基于它们限制访问。这可能最好作为一个功能请求来处理。但同时,你的建议与自动后revprop移动,是一个不错的主意。@SQB我理解,从来没有看到一个基于属性的访问控制,因此我的钩子建议。谢谢你。总的来说,问题在于subversion方法很可能是基于开源软件的观点,每个人都可以阅读源代码。读访问控制可能是由produc提供的