0

我开发了一个 java 1.4 web 应用程序。应用程序部署在 jboss(tomcat) 上。

假设我的文件夹结构是

   mainfolder(contains subfolders and jsp pages)
        images(contains all of images files)
        headerfiles(header files)
        javascript(javascript files)

网站登录页面的 url 是

     mywebsite.com/mainfolder/login.jsp

如果用户为某些静态资源键入完整的 url

     mywebsite.com/mainfolder/images/myimage.jpeg

然后他可以在这个 url 上查看图像。

我想阻止用户查看这些资源。我该怎么办?

有什么方法可以指定我不希望用户看到的文件名模式。在这种情况下,我可以指定 *.ssi 模式来隐藏。

4

3 回答 3

5

如果您的页面中使用了这些图像,则用户必须能够下载它们才能看到它们。

这是基本的 HTTP。如果要下载资源,则需要对其具有访问权限。

阻止您的用户访问mywebsite.com/mainfolder/images/myimage.jpeg将意味着您将无法在 HTML 或 CSS 中使用此图像。

如果这些文件不应该对用户可用,而只有服务器可用,请不要通过将它们保存在未发布的文件夹中来发布它们。

于 2009-11-20T08:15:17.327 回答
1

WEB-INF浏览器无法直接访问webapp 目录下的任何内容。

于 2009-11-20T10:27:44.593 回答
1

我想阻止用户查看这些资源。我该怎么办?

老实说,这完全没有意义。客户如何能够获得静态数据?您可以将这些文件放在/WEB-INF(未发布的文件夹)中以隐藏它们以防止直接访问,但是您永远不能在 JSP 页面中使用它们,因为客户端不再能够直接访问它。

我认为这里最大的误解是您没有意识到每个图像、CSS 文件、JS 文件等都将每个都视为一个完全独立的 HTTP 请求。完整的网站由单个 HTTP 请求牵引是不正确的。

于 2009-11-20T12:08:03.590 回答