【问题标题】:How to deny web access to a Tomcat directory如何拒绝对 Tomcat 目录的 Web 访问
【发布时间】:2014-08-22 04:20:48
【问题描述】:

我的 webapp 目录中有一个文件夹。

mywebapp/repositoryFolder

此 web 应用程序旨在接受带有凭据的发布请求,并在经过适当的身份验证后在 http 响应中提供文件。 我想阻止对这些文件的网络访问。 例如。应该不可能从地址直接访问文件:

http://myserver.com/mywebapp/repositoryFolder/filename.ext

【问题讨论】:

    标签: tomcat web servlets tomcat7


    【解决方案1】:

    将此类文件保存在 WEB-INF 下是一个很好的约定。正常情况下,WEB-INF 下的文件是无法被外界访问的。

    但是,另一个你可以通过在 web.xml 中使用这个约束来实现这一点

    <security-constraint>
      <web-resource-collection>
        <web-resource-name >precluded methods</web-resource-name>
        <url-pattern >/repositoryFolder/*</url-pattern>
      </web-resource-collection>
      <auth-constraint/>
    </security-constraint>
    

    另请参考:

    Blocking access to static content folder

    【讨论】:

    • 谢谢!我将在几个小时内测试您的解决方案。这种方法不会阻止我在我的 servlet 处理的 HTTP 响应中提供文件,对吧?
    • @Ramesh PVK - 只是为了完整性 - 最后缺少约束
    • @DavideLeonardi 正确。它不会阻止您通过 servlet 提供文件
    • 谢谢@gordon613!!
    • 嗨@RameshPVK,在apache-tomcat 6.0.37中,存在URL为localhost/../manager/html的目录遍历漏洞,但是当有分号后跟2个点时,我们可以访问tomcat目录为localhost/..;/manager/html,我们如何避免模式 /..;/ ,由于这种 url 模式,请求重定向到 tomcat 内部文件夹而不是重定向到 webapps 文件夹中的 servlet 应用程序,请建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 2013-11-11
    • 2017-08-05
    • 2012-03-14
    相关资源
    最近更新 更多