java Jetty使用Jetty默认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/
文件夹中获取数据吗
# 1 楼答案
是的,可以使用任意多的
DefaultServlet
实例只需注意实际的“默认值”与其他值的行为。还有它对你的
ServletContext
意味着什么,以及它能看到什么请参阅prior answer
例如:如果您使用的是传统的webapp,那么“默认值”(这是Jetty创建的
<servlet-name>default</servlet-name>
实例,作为Servlet规范的一部分)将使用webapp本身作为Resource Base
任何额外的
DefaultServlet
实例都不会参与ServletContext
规则。如果有额外的<url-pattern>
段,则需要知道pathInfoOnly
init参数