【问题标题】:Restrict/Allow file access in tomcat based on file extension via whitelist通过白名单根据文件扩展名限制/允许tomcat中的文件访问
【发布时间】:2012-03-25 18:21:05
【问题描述】:

在tomcat中,我需要通过文件类型禁用浏览器访问

我可以做到以下几点

<servlet-mapping>
  <servlet-name>Error Servlet</servlet-name>
  <url-pattern>*.log</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>Error Servlet</servlet-name>
  <url-pattern>*.java</url-pattern>
</servlet-mapping>

但不是像这样列入黑名单,是否可以对我希望允许访问的类型进行白名单?比如*.jsp、*.html、*.jpeg

谢谢

【问题讨论】:

  • 您所做的只是一种解决方法,而不是真正正确的方法 - look at this answer。哦,不可能有“白名单”
  • 谢谢。我无法理解解决方案。我无法在互联网上获得有关 Valapp 元素的任何信息。能详细点吗?
  • 这个答案可能有点过时,请查看原始文档tomcat.apache.org/tomcat-4.0-doc/config/context.html

标签: java security jakarta-ee tomcat6


【解决方案1】:

你可以这样做:

   <servlet-mapping>
      <servlet-name>Servlet</servlet-name>
      <url-pattern>*.*</url-pattern>
    </servlet-mapping>

在 servlet 中:

private final String enabled = "^(.)+((\.jsp)|(\.html)|(\.jpeg))$";

public void service(...) {
     if (!request.getRequestURI().matches(enabled)) {
        response.sendError(401);
        return;
     }
}

【讨论】:

  • 谢谢。我必须将修复程序应用于其中已经包含 200 多个不同类型文件的 tomcat。我认为让 servlet 响应允许的文件将是一项复杂而乏味的任务。
  • URL 格式有非法语法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-07
  • 1970-01-01
  • 2017-11-13
  • 2010-10-07
  • 2015-09-14
  • 1970-01-01
  • 2014-09-13
相关资源
最近更新 更多