【问题标题】:How to restrain access to OpenGrok results?如何限制对 OpenGrok 结果的访问?
【发布时间】:2014-07-02 05:11:28
【问题描述】:

我们创建了一个 OpenGrok 服务器并索引了我们的资源。问题是我们使用的 SCM(这里是 Perforce,但我想这不适用于 Perforce,因为文件/文件夹级别的权限被广泛使用)限制了每个文件或文件夹的访问,而 OpenGrok 没有!

所以今天,任何使用 OpenGrok 执行搜索的用户都将检索所有文件,即使是他/她不应访问的文件!在我看来,这是一个障碍:我们永远不会在生产中发布这样的安全漏洞。

您知道实现这种安全性的任何设置/解决方法吗?

编辑:任何人都应该使用这个 OpenGrok,我当然可以使用我的权限检索 Perforce 源(所以我只会获得我有权访问的文件)来执行搜索,但这不会满足广大受众的这一需求。

【问题讨论】:

    标签: security version-control perforce opengrok


    【解决方案1】:

    https://github.com/OpenGrok/OpenGrok/issues/503 随时加入那里的辩论(或类似的请求),ev。发送补丁

    【讨论】:

    • 这回答了我的观点,即今天的 OpenGrok 没有本地方式来实现这一点。因此,您需要每个用户/类似用户组一个实例,或者在上面构建自己的安全层。
    【解决方案2】:

    您是否考虑过创建一个不同的 p4 用户来同步 OpenGrok 索引的源代码?该用户可以根据 P4 保护表中的条目进行有限访问。这样您就可以在文件夹级别同步代码,同时根据保护表权限隐藏子文件夹。

    我为我的 opengrok 实例做了类似的设置:)

    【讨论】:

    • 感谢您的回答 :-) 这看起来不错,但仅适用于一个用户:这里我需要检索整个 SCM 存储库,以便任何用户都可以对其进行 OpenGrok 查询(但仅限于它应该在 SCM 中看到什么)。我将编辑我的问题以指定此要求。
    【解决方案3】:

    好吧,我终于找到了解决方法:

    • 找到您的 tomcat 服务器 XML 配置文件(我的位于 .../apache-tomcat-8.0.52/conf/server.xml)
    • 在服务器 > 服务 > 引擎 > 主机中添加以下标记:

      " className="org.apache.catalina.valves.RemoteAddrValve" deny="" />

    我有一个每日脚本,可以从允许的工作站生成此 IP 列表并相应地更新此文件。此列表类似于“1.2.3.4|5.6.7.8|6.2.5.3”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-10
      • 2021-12-06
      • 2020-01-15
      • 2016-10-18
      相关资源
      最近更新 更多