我使用 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
实例如您所愿。
只需注意实际“默认”的行为 DefaultServlet
与其他的相比。还有这对您的 ServletContext
意味着什么以及它能看到什么。
prior answer获取信息。
例如:如果您使用传统的 Web 应用程序,则“默认”(这是 Jetty 作为 Servlet 规范的一部分创建的 <servlet-name>default</servlet-name>
实例)将使用 Web 应用程序本身作为 Resource Base
.
任何额外的DefaultServlet
实例不会参与ServletContext
规则。如果您还有额外<url-pattern>
段,您需要了解 pathInfoOnly
初始化参数。
关于java - Jetty - 使用 jetty 默认 servlet 是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39192114/