我开发了一个java 1.4 Web应用程序。应用程序部署在jboss(tomcat)上。
假设我的文件夹结构是
mainfolder(contains subfolders and jsp pages)
images(contains all of images files)
headerfiles(header files)
javascript(javascript files)
网站登录页面的网址是
mywebsite.com/mainfolder/login.jsp
如果用户为某些静态资源键入完整的URL
mywebsite.com/mainfolder/images/myimage.jpeg
然后他可以在这个网址上查看图片。
我想阻止用户查看这些资源。我该怎么办?
是否有某种方式来规定我不希望用户看到的文件名模式。 在这种情况下,我可以指定要隐藏的* .ssi模式。
答案 0 :(得分:5)
如果您的网页中使用了这些图片,则用户必须能够下载这些图片才能看到它们。
这是基本的HTTP。如果要下载资源,则需要访问该资源。
阻止您的用户访问mywebsite.com/mainfolder/images/myimage.jpeg
将意味着您将无法在HTML或CSS中使用此图片。
如果这些文件不应该对用户可用,而只对服务器可用,则不要通过将它们保存在未发布的文件夹中来发布它们。
答案 1 :(得分:1)
浏览器无法直接访问webapp的WEB-INF
目录下的任何内容。
答案 2 :(得分:1)
我想阻止用户查看这些资源。我该怎么办?
老实说,这没有任何意义。客户端如何能够获取静态数据?您可以将这些文件放在/WEB-INF
(未发布的文件夹)中以隐藏它们直接访问,但是您永远不能在JSP页面中使用它们,因为客户端不再能够直接访问它。
我认为这里最大的误解是你没有意识到每个图像,CSS文件,JS文件等都将每个图像都视为一个完全独立的HTTP请求。完整的网站不是由单个HTTP请求拖运的。