【问题标题】:wildfly/undertow - how to disable folder/file listingwildfly/undertow - 如何禁用文件夹/文件列表
【发布时间】:2014-02-13 19:20:18
【问题描述】:

我目前在我的 WAR 中的 web.xml 中使用此设置,以确保无论容器是否正确配置,应用程序本身都不会直接通过网络列出文件/文件夹:

    <servlet>
        <servlet-name>DefaultNoListing</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
....
    <servlet-mapping>
        <servlet-name>DefaultNoListing</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

问题:如何在部署到 Wildfly/Undertow 时做类似的事情,这样无论服务器如何配置,每个应用程序都可以确保没有文件夹/文件列表?

-D

【问题讨论】:

标签: security wildfly


【解决方案1】:

作为一项更新,此功能现已实施,并将成为 WildFly 8.0.1 的一部分

您可以使用如下配置修改默认 servlet 行为:

 <servlet>
      <servlet-name>default</servlet-name>
      <servlet-class>io.undertow.servlet.handlers.DefaultServlet</servlet-class>
      <init-param>
          <param-name>directory-listing</param-name>
          <param-value>true</param-value>
      </init-param>
 </servlet>

这将覆盖默认 servlet 的配置并启用目录列表。 默认情况下,列表被禁用。

【讨论】:

  • 如果我将它设置为 false 它将不起作用。我仍然可以遍历我的目录。
  • WildFly 控制台的简单方法127.0.0.1:9990 -> 配置:子系统子系统:Web/HTTP - Undertow 设置:Servlet/JSP(编辑、目录列表复选框和保存)
  • WildFly 的较新版本对此进行了适当的配置,这里的主要问题是关于使用 DefaultServlet 以及如何配置它。
【解决方案2】:

目前默认的 servlet 根本不支持在 Undertow/WildFly 中列出文件夹。

这是我们在实施时遗漏的东西。

我创建了https://issues.jboss.org/browse/UNDERTOW-195 来实现这一点。

一旦我们实现了它,您就可以像现在一样配置它,只是类名是

io.undertow.servlet.handlers.DefaultServlet

【讨论】:

    猜你喜欢
    • 2018-07-17
    • 2014-08-18
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多