tomcat 如何禁止下载 jsp 源码
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
不知道大家有没有别的思路
其实源码也没啥敏感信息,但是他扫出来就非要整改
之前 nginx 被缓存误导了最新结论,与 tomcat 无关,是 springmvc5.03 导致的,单独放一个 jsp 的 tomcat 没问题,打包 spring 的 war 部署就有问题,我在应用加了个 filter 解决
具体原因暂未清楚,debug 进去太多层了 ----------------------- 以下是精选回复-----------------------
答:请发完整的 nginx 配置
答:我。。。。缓缓的打出一个问号
?
答:Java 被黑的最惨的一次
答:tomcat 被黑的最惨的一次
答:你上周问了同个问题,还没解决?
答:这不是 tomcat 的默认行为吧,肯定是配置错了。
如无必要,勿增实体。有 bug 就去找原因。上 ng 掩盖只会搞得越来越复杂。
答:想要的源码下不到,能下的源码用不着。
好尴尬啊。
答:https://issues.redhat.com/browse/WFLY-4595?attachmentSortBy=dateTime 这里有和你类似的问题解决办法是升级新版本 undertow ,你可以更新新版本 tomcat 试试
答:在目前已知的问题状态下,这不可能发生。
答:我怀疑你上传了源码,需要部署编译后的代码
答:我记得好多天以前在 v2 看到有人问类似问题……
答:哦不对,那个是 tomcat 正常,套了个 nginx 就不对。
这个看起来像是特定 tomcat 版本的 bug 。
答:贴出 web.xml 看看啊,试一下<url-pattern>/*</url-pattern>把 /*改成 /
答:LZ 又消失了。我记得之前也看到过帖子,现在是定位到只过 tomcat 也有问题了吗?
那就贴下路由配置呗
答:你把 url 发出来我们看看具体能下到什么 jsp 文件,这样才能帮你解决问题嘛
答:我记得好像似乎不允许使用妹子头像吧
答:nginx 开了 autoindex?
答:原帖不是说关了 tomcat 还能下载吗?
答:去官网下个干净的 tomcat 解压,配置文件也不要直接复制而是手动修改,重新部署一下试试
答:你是不是把 jsp 文件放到工程根目录了? WEB-INF 下的文件才无法访问。
答:你这放工程根目录就当作是静态资源了,把 jsp 后缀的当作 controller 请求拦截掉
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
0条评论