【问题标题】:How do I allow symlnked directory traversal in WASCE web app如何在 WASSCE Web 应用程序中允许符号链接目录遍历
【发布时间】:2012-05-04 00:48:13
【问题描述】:

我目前在 RHEL 4 Update 9 上运行 WebSphere Application Server Community Edition v3.0.0.1。

我有一个 Web 应用程序以前在 WAS 6.1 上运行,但我们想迁移到 WASCE。实现是这样的,我们在 Web Content 文件夹内有一个符号链接目录“symdir”,它指向同一文件系统上但在 Web 应用程序和 WASCE 之外的另一个文件夹。在幕后,我们将在符号链接目录中动态构建内容,然后创建指向它的链接。例如,在 symdir -> /tagHome 中,我们将创建 /tagFile/some.tag,这样 Web 应用程序就会知道它是 symdir/tagFile/some.tag,而 f/s 会知道它是 /tagHome/tagFile/some.tag。然后我们将在http://hostname:port/context/symdir/tagFile/some.tag 创建一个指向它的链接并渲染文件——它是简单的 xml。这一切都曾在 WAS 6.1 上运行过。

但是,现在当我将应用程序移至 WASCE 时,这种类型的配置不再起作用。具体来说,我无法遍历任何符号链接目录并取回任何内容。为此,我什至尝试在 Web 应用程序包中添加目录并使用它们进行部署,然后尝试点击它们。就像 /context/* 被阻止一样!

我在网上挖掘的最后一件事是 org.apache.geronimo.tomcat.GeronimoStandardContext.allowLinking=true。似乎没有改变行为。

在这里JSP files in external directory也发现了类似的东西,但是在web.xml中添加上下文模块会导致编译器错误。

除了编写一个 servlet 之外,还有什么想法吗?谢谢你的帮助!

【问题讨论】:

    标签: geronimo symlink-traversal


    【解决方案1】:

    这解决了问题: 在我添加的 /etc/system.properties 文件中:

    org.apache.geronimo.tomcat.GeronimoStandardContext.allowLinking=true
    org.apache.geronimo.webapplication.stage=development
    

    重新启动 WASCE,这让我可以提供静态内容。可能不是每个 WASCE 用户的最佳解决方案,但对我们有用。

    【讨论】:

      猜你喜欢
      • 2021-06-29
      • 1970-01-01
      • 2022-12-19
      • 1970-01-01
      • 1970-01-01
      • 2011-05-11
      • 2023-03-14
      • 1970-01-01
      相关资源
      最近更新 更多