servlets - 阻止访问静态内容文件夹

标签 servlets web.xml

我想知道如何阻止访问我的网络应用程序中的静态内容文件夹。右边的文件夹位于 war 中的 web-root 文件夹内。像这样:

    myapp/

       -css/
       -js/
       -swf/
         :
       WEB-INF/

我希望内容仅在用户处于 session 中时从应用程序中可见。如果有人在他/她的 session 之外(过期后)点击该 URL,则应阻止该内容。

它是一个带有 spring 的 groovy-grails 应用程序,我们正在使用 tomcat 服务器。

最佳答案

  1. 通常情况下,/WEB-INF下的文件无法从外部直接访问。最好将此类文件保存在 /WEB-INF 下。
  2. 使用网络安全约束进行保护。以下是限制文件夹的示例:

     <security-constraint>
       <web-resource-collection>
         <web-resource-name >precluded methods</web-resource-name>
         <url-pattern >/css/*</url-pattern>
         <url-pattern >/js/*</url-pattern>
         <url-pattern >/swf/*</url-pattern>
         </web-resource-collection>
       <auth-constraint/>
     </security-constraint>
    
  3. 大多数应用服务器都支持对外界屏蔽文件或目录。请检查他们的文档。

    Tomcat Documentation

关于servlets - 阻止访问静态内容文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8115132/

相关文章:

java - 使用 Servlet 处理 Cookie

servlets - java.lang.ClassNotFoundException : HelloServlet at org. apache.catalina.loader.WebappClassLoader.loadClass

java - 如何在 web.xml 中添加应用程序上下文

java - 如何将页面编码包含到所有jsp页面

java - 骡子 : Queuemanager is null

java - Jersey web.xml 到基于注释的配置以及 HK2 绑定(bind)

java - Spring url 映射不起作用

java - 在 eclipse 的 tomcat 中运行一个 java servlet maven webapp

Java EE 菜鸟问题 - 使用附加模块

java - 此 Web 应用程序开发的基础知识