Jetty - 使用 jetty 默认 servlet 是否安全

Jetty - is it safe to use jetty default servlet

我使用 jetty 9.3.11,在我的 web.xml 中,我有以下代码使用 jetty 默认 servlet 来提供静态内容(图像、txt 文件等)。

    <servlet>
        <servlet-name>DefaultServlet</servlet-name>
        <servlet-class>org.eclipse.jetty.servlet.DefaultServlet</servlet-class>
        <init-param>
            <param-name>resourceBase</param-name>
            <param-value>/home/User/data/</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>DefaultServlet</servlet-name>
        <url-pattern>/static/*</url-pattern>
    </servlet-mapping>

这样使用默认的jetty servlet安全吗?我的意思是 - 我可以确定没有人会从 /home/User//home/User/temp//home/ 文件夹中获取数据吗?

是的,使用任意数量的 DefaultServlet 个实例。

只需注意实际 "default" DefaultServlet 与其他行为的行为。还有它对您的 ServletContext 意味着什么以及它能看到什么。

供参考。

例如:如果您使用的是传统的网络应用程序,那么 "default"(这是 Jetty 作为 Servlet 规范的一部分创建的 <servlet-name>default</servlet-name> 实例)将使用网络应用程序本身作为 Resource Base.

任何额外的 DefaultServlet 个实例将不参与 ServletContext 规则。如果您有额外的 <url-pattern> 段,您需要了解 pathInfoOnly 初始化参数。