FONG2
V2EX  ›  Java

tomcat 如何禁止下载 jsp 源码

  •  
  •   FONG2 · Feb 17, 2022 via iPhone · 5597 views
    This topic created in 1721 days ago, the information mentioned may be changed or developed.

    tomcat 服务器 webapps 目录下有 xx.jsp 文件 通过访问 http://127.0.0.1:8080/xx.jsp/ (注意最后一个斜杠) 浏览器会弹出下载,保存文件后发现下载回来的是 jsp 源文件,即未编译版本,能看到 java 代码的。

    curl 'http://127.0.0.1:8080/xx.jsp/' 情况也一致 排除缓存

    尝试过增加 filter 拦截,但是发现这个是 defaultServlet 行为,这属于最外层,代码无法干预

    涉及 jsp 页面有点多,全部挪到 web-inf 工作量有点大,现在护网也不能这样操作

    目前唯一的思路是加 ng ,在 ng 层面重写 url

    不知道大家有没有别的思路

    其实源码也没啥敏感信息,但是他扫出来就非要整改

    Supplement 1  ·  Feb 17, 2022
    之前 nginx 被缓存误导了

    最新结论,与 tomcat 无关,是 springmvc5.03 导致的,单独放一个 jsp 的 tomcat 没问题,打包 spring 的 war 部署就有问题,我在应用加了个 filter 解决

    具体原因暂未清楚,debug 进去太多层了
    24 replies  •  2022-02-18 14:45:57 +08:00
    ysc3839
    ysc3839
    Feb 17, 2022 via Android
    1
    请发完整的 nginx 配置
    FONG2
    FONG2
    OP
    Feb 17, 2022 via iPhone
    2
    @ysc3839 不涉及 ng…纯 tomcat 环境的问题
    est
    est
    Feb 17, 2022
    3
    我。。。。缓缓的打出一个问号

    ?
    run2
    run2
    Feb 17, 2022
    4
    Java 被黑的最惨的一次
    yunhui
    yunhui
    Feb 17, 2022
    5
    tomcat 被黑的最惨的一次
    boolgosuny
    boolgosuny
    Feb 17, 2022
    6
    你上周问了同个问题,还没解决?
    dcsuibian
    dcsuibian
    Feb 17, 2022
    7
    这不是 tomcat 的默认行为吧,肯定是配置错了。

    如无必要,勿增实体。有 bug 就去找原因。上 ng 掩盖只会搞得越来越复杂。
    ktqFDx9m2Bvfq3y4
    ktqFDx9m2Bvfq3y4
    Feb 17, 2022 via iPhone
    8
    想要的源码下不到,能下的源码用不着。

    好尴尬啊。
    INTOX8O
    INTOX8O
    Feb 17, 2022
    9
    https://issues.redhat.com/browse/WFLY-4595?attachmentSortBy=dateTime 这里有和你类似的问题解决办法是升级新版本 undertow ,你可以更新新版本 tomcat 试试
    sutra
    sutra
    Feb 17, 2022
    10
    在目前已知的问题状态下,这不可能发生。
    beipiao
    beipiao
    Feb 17, 2022
    11
    我怀疑你上传了源码,需要部署编译后的代码
    INTOX8O
    INTOX8O
    Feb 17, 2022
    12
    @wsfmzq 根据这个 issue 描述这个在 8.1.0.Final, 8.2.0.Final, 9.0.0.CR1 下的 undertow 属于 bug ,可能 tomcat 也有相同情况?
    adoal
    adoal
    Feb 17, 2022
    13
    我记得好多天以前在 v2 看到有人问类似问题……
    adoal
    adoal
    Feb 17, 2022
    14
    哦不对,那个是 tomcat 正常,套了个 nginx 就不对。

    这个看起来像是特定 tomcat 版本的 bug 。
    krixaar
    krixaar
    Feb 17, 2022
    15
    @adoal #13 几天前就是楼主问的
    bzw875
    bzw875
    Feb 17, 2022
    16
    贴出 web.xml 看看啊,试一下<url-pattern>/*</url-pattern>把 /*改成 /
    retanoj
    retanoj
    Feb 17, 2022
    17
    LZ 又消失了。我记得之前也看到过帖子,现在是定位到只过 tomcat 也有问题了吗?

    那就贴下路由配置呗
    nba2k9
    nba2k9
    Feb 17, 2022
    18
    你把 url 发出来我们看看具体能下到什么 jsp 文件,这样才能帮你解决问题嘛
    tabris17
    tabris17
    Feb 17, 2022
    19
    我记得好像似乎不允许使用妹子头像吧
    Bisyfish
    Bisyfish
    Feb 17, 2022
    20
    nginx 开了 autoindex?
    itechify
    itechify
    Feb 17, 2022
    21
    原帖不是说关了 tomcat 还能下载吗?
    hcocoa
    hcocoa
    Feb 17, 2022
    22
    去官网下个干净的 tomcat 解压,配置文件也不要直接复制而是手动修改,重新部署一下试试
    xohome
    xohome
    Feb 17, 2022
    23
    你是不是把 jsp 文件放到工程根目录了? WEB-INF 下的文件才无法访问。
    sprite82
    sprite82
    Feb 18, 2022
    24
    你这放工程根目录就当作是静态资源了,把 jsp 后缀的当作 controller 请求拦截掉
    <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>*.jsp</url-pattern>
    </servlet-mapping>
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1316 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 21:06 · PVG 05:06 · LAX 13:06 · JFK 16:06
    ♥ Do have faith in what you're doing.