5

我有一个包含数百个 HTML、JavaScript 和图像文件的 Web 应用程序。这些文件位于根目录下:

my_root--
    -- html
    -- js
    -- images

这些文件夹包含一些子文件夹。

出于安全原因,我需要将所有这些资源移动到 WEB-INF 文件夹下,这样它们就不能被直接访问。

目前 JSP 和 servlet 文件已经在 WEB-INF 文件夹下。

对我来说,安全移动 WEB-INF 下的所有 HTML/JavaScript/images 文件夹而不破坏所有链接/转发到这些文件夹中的资源并确保这些资源不能直接访问的最简单方法是什么?

我正在使用 WebSphere 和 WebLogic 服务器。

4

2 回答 2

9

对我来说,安全移动 WEB-INF 下的所有 html/js/images 文件夹而不破坏所有链接/转发到这些文件夹中的资源并确保无法直接访问这些资源的最简单方法是什么?

你在这里犯了一个思考错误。无论如何,HTML/JS/图像(和 CSS)资源都需要可直接访问。对于 JSP,情况有所不同,其中一些(如果不是全部)需要由 servlet 进行预处理(例如,从数据库中检索一些列表以显示在表中)。如果直接访问这些 JSP,那么将完全跳过该 servlet 步骤,这绝对不是您想要的(JSP 最终“空”;没有来自数据库的任何数据)。这就是为什么它们应该被隐藏起来/WEB-INF以防止直接访问而无需首先通过预处理 servlet。此外,在基于 servlet 的 MVC 框架的情况下,整个 MVC 框架过程(收集请求参数、转换/验证它们、更新模型值、调用操作等)将被跳过。

您的具体功能要求并不完全清楚(整个问题本身没有意义;答案只是“不要那样做”),但是如果您确实想限制对不需要的静态资源的访问仅由 servlet 对某些用户进行预处理,那么您需要实现身份验证/登录系统。您可以为此使用容器管理的身份验证或自行Filter开发。

于 2012-08-30T10:31:26.773 回答
0

You can go with a very simple tool like notepad++ and use the findAndReplace feature. Eclipse can also do this but it gets tricky to effectively find every reference.

Note that there are other ways to stop users from accessing your images. It is probably easier to just leave things where they are and instruct the websphere to stop serving these images from the images folder

于 2012-08-30T10:22:35.353 回答