Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 图像Servlet还可以访问其他文件_Java_Servlets - Fatal编程技术网

Java 图像Servlet还可以访问其他文件

Java 图像Servlet还可以访问其他文件,java,servlets,Java,Servlets,我想在servlet中显示图像, 有许多复杂的方法,如 首先在数据库中转储图像,然后使用它 最后我发现这很容易。 我使用了这个l 更改了web.xml <servlet> <servlet-name>Image</servlet-name> <servlet-class>com.jsos.image.ImageServlet</servlet-class> <init-param> <param-na

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

  • 首先在数据库中转储图像,然后使用它
最后我发现这很容易。
我使用了这个l

更改了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?../../src/maJavafiles.java

令我惊讶的是,java文件被下载了。那么,我如何限制用户将这种url放入目录结构中呢?我的意思是,在目录结构中进行升级,以便能够进行这样的更改,您需要访问servlet源代码。既然你不能更改代码,你应该从零开始开发这样的功能,同时考虑到这个安全问题


你可以使用@BalusC

之类的工具来解决这个问题,编写你自己的代码。@ScaryWombat我不知道你在说什么,仅供参考,我是一名学生,我是通过这种方式学习的,我可能会告诉你我应该做的事情会对我有所帮助,而不仅仅是……在没有访问你发布链接的jar中的代码的情况下,没有办法知道出了什么问题。它解决的解决方案很琐碎,很容易自己编写。我同意你的观点,但也许这应该是一个评论。谢谢你的链接,我很感激你没有批评,而是帮助了我。@HarendraSingh我不认为你受到了批评。@ScaryWombat而不是“你到底为什么……”你可以说“…不是一个好的编码实践,相反,你应该…或者参考这个链接”,记住Stackoverflow不是为行业天才设计的,这里的许多用户都是初学者。你是说它是一个
安全漏洞,因为它可以读取你的java文件(不应该在web服务器上)-我猜是你在做批评
/Myservlet/Image?../../src/maJavafiles.java