Image Servlet也可以访问其他文件

时间:2014-07-15 05:39:29

标签: java servlets

我想在servlet中显示图像,
有许多复杂的方法,如

然后我终于发现这很容易。
我使用了来自tutoria l

的Image Servlet

更改了web.xml

<servlet>
 <servlet-name>Image</servlet-name>
 <servlet-class>com.jsos.image.ImageServlet</servlet-class>
 <init-param>
  <param-name>dir</param-name>
  <param-value>C:/Users/myName/Desktop/myName/workspace_j2ee/myServlet/WebContent/images</param-value>
 </init-param>
 <init-param>
  <param-name>expires</param-name>
  <param-value>86400</param-value>
 </init-param>
</servlet> 

我可以使用

成功显示图像
/Myservlet/Image?fileName.png

但问题是这实际上是安全漏洞,我试过

/Myservlet/Image?../../src/maJavafiles.java

令我惊讶的是,下载了java文件。那么如何限制用户放置这种网址,我的意思是在目录结构中升级

1 个答案:

答案 0 :(得分:1)

为了能够进行此类更改,您需要访问Servlets源代码。由于您无法更改代码,因此您应该从头开始开发此类功能,并考虑到此安全问题......

您可以使用类似@BalusC servlet for image viewing

的内容