V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
FONG2
V2EX  ›  Java

tomcat 如何禁止下载 jsp 源码

  •  
  •   FONG2 · 2022-02-17 12:44:00 +08:00 via iPhone · 3829 次点击
    这是一个创建于 1011 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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

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

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

    第 1 条附言  ·  2022-02-17 18:45:24 +08:00
    之前 nginx 被缓存误导了

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

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

    sobigfish
        4
    sobigfish  
       2022-02-17 13:11:45 +08:00
    Java 被黑的最惨的一次
    yunhui
        5
    yunhui  
       2022-02-17 13:23:20 +08:00
    tomcat 被黑的最惨的一次
    boolgosuny
        6
    boolgosuny  
       2022-02-17 13:26:01 +08:00
    你上周问了同个问题,还没解决?
    dcsuibian
        7
    dcsuibian  
       2022-02-17 13:31:47 +08:00
    这不是 tomcat 的默认行为吧,肯定是配置错了。

    如无必要,勿增实体。有 bug 就去找原因。上 ng 掩盖只会搞得越来越复杂。
    Chad0000
        8
    Chad0000  
       2022-02-17 13:31:57 +08:00 via iPhone
    想要的源码下不到,能下的源码用不着。

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

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

    那就贴下路由配置呗
    nba2k9
        18
    nba2k9  
       2022-02-17 15:45:45 +08:00
    你把 url 发出来我们看看具体能下到什么 jsp 文件,这样才能帮你解决问题嘛
    tabris17
        19
    tabris17  
       2022-02-17 16:21:46 +08:00
    我记得好像似乎不允许使用妹子头像吧
    Bisyfish
        20
    Bisyfish  
       2022-02-17 16:39:15 +08:00
    nginx 开了 autoindex?
    oneisall8955
        21
    oneisall8955  
       2022-02-17 17:07:05 +08:00
    原帖不是说关了 tomcat 还能下载吗?
    hcocoa
        22
    hcocoa  
       2022-02-17 18:01:18 +08:00
    去官网下个干净的 tomcat 解压,配置文件也不要直接复制而是手动修改,重新部署一下试试
    xohome
        23
    xohome  
       2022-02-17 18:14:04 +08:00
    你是不是把 jsp 文件放到工程根目录了? WEB-INF 下的文件才无法访问。
    sprite82
        24
    sprite82  
       2022-02-18 14:45:57 +08:00
    你这放工程根目录就当作是静态资源了,把 jsp 后缀的当作 controller 请求拦截掉
    <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>*.jsp</url-pattern>
    </servlet-mapping>
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2747 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 10:00 · PVG 18:00 · LAX 02:00 · JFK 05:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.