【问题标题】:Prevent File Access via URL in Java Servlet Webapp在 Java Servlet Webapp 中防止通过 URL 访问文件
【发布时间】:2013-11-14 09:55:33
【问题描述】:

我正在使用 Java Servlets 3.1.0 构建一个简单的 Web 应用程序。
有没有办法可以防止通过 URL 直接访问我的 WEB-INF 中的页面?

例如:
我的WEB-INF 文件夹中有dashboard.jsp 文件。我还有一个名为DashboardServlet 的servlet,可以使用/dashbboard 访问,我使用RequestDispatcher 转发dashboard.jsp

所以现在,当我访问localhost:8080/dashboard 时,会显示dashboard.jsp。 但是,当我尝试访问localhost:8080/dashboard.jsp 时,也会显示仪表板

我怎样才能阻止对localhost:8080/dashboard.jsp 的访问,同时仍然使localhost:8080/dashboard 上的转发成为可能。

谢谢!

【问题讨论】:

  • 如果您的 jsp 文件放在 WEB-INF 中,那么如果您尝试查看 localhost:8080/dashboard 它不会提供 jsp 文件,除非您的 servlet 只是读取原始 jsp 文件并输出它
  • web.xml 中有什么内容?

标签: java jsp servlets


【解决方案1】:

WEB-INF 目录包含一个层次结构,您可以在其中找到 Web 应用程序的必要配置信息,以及由 JSP(Java 服务器页面)调用的 servlet 和类的所有类文件。 WEB-INF 目录是 Web 应用程序的重要组成部分,没有它就无法运行!

这基本上意味着 WEB-INF 完全是为了隐藏 Jsp 文件。

因此,如果您将 JSP 文件复制到 WEB-INF,它们将无法以 localhost:8080/dashboard.jsp 格式访问。

同时检查您的 Web.xml 以获取正确的 servlet 映射条目。

【讨论】:

    猜你喜欢
    • 2016-08-26
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多