【发布时间】:2014-07-15 05:39:29
【问题描述】:
我想在 servlet 中显示图像,
有许多复杂的方法,例如
- 首先将图像转储到数据库中,然后使用它
- reading from disk and converting to byte array then having separate servlet for each image
最后我发现这很容易。
我使用了来自 tutorial 的 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 文件被下载了。那么如何限制用户将这种 url 我的意思是在目录结构中升级
【问题讨论】:
-
要解决这个问题,请编写您自己的代码。
-
@ScaryWombat 我不知道你在说什么,仅供参考,我是一名学生,我被这样教过,可能会告诉我应该做的事情会帮助我,而不仅仅是...... .
-
如果无法访问您发布链接的 jar 中的代码,就无法知道哪里出了问题。它解决的解决方案很简单,可以很容易地自己编写。