V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
FONG2
V2EX  ›  Java

tomcat 如何禁止下载 jsp 源码

  •  
  •   FONG2 · Feb 17, 2022 via iPhone · 4849 views
    This topic created in 1534 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
        1
    ysc3839  
       Feb 17, 2022 via Android
    请发完整的 nginx 配置
    FONG2
        2
    FONG2  
    OP
       Feb 17, 2022 via iPhone
    @ysc3839 不涉及 ng…纯 tomcat 环境的问题
    est
        3
    est  
       Feb 17, 2022
    我。。。。缓缓的打出一个问号

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

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

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

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

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