jetty解決目錄

應用開發、部署用的jetty容器。安全監測發現有目錄遍歷的問題。即瀏覽器中輸入目錄地址就可以訪問服務器上的文件,如下:

這是非常不安全的。解決該問題也很簡單,比照網上Tomcat的解決方案,jetty也有defaultServlet配置的解決方案。在web.xml中添加配置即可,如下:

<servlet>
    <servlet-name>default</servlet-name>
    <!-- <servlet-class>org.mortbay.jetty.servlet.DefaultServlet</servlet-class> -->
    <servlet-class>org.eclipse.jetty.servlet.DefaultServlet</servlet-class>
    <init-param>
	  <param-name>dirAllowed</param-name>
	  <param-value>false</param-value>
	</init-param>
    <load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

其中dirAllowed即是對目錄遍歷的配置,true爲允許,false爲禁止。

需要注意的是,在jetty低版本中,可能會報錯org.eclipse.jetty.servlet.DefaultServlet找不到classnotfound。這是因爲低版本的jetty或者是jetty自己對default進行管理,高本版中才將其給了eclipse進行管理。此時將org.eclipse.jetty.servlet.DefaultServlet改爲org.mortbay.jetty.servlet.DefaultServlet即可。

修改以後,再次訪問,訪問被拒,如下:

以上記錄完畢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章