【Azure 应用服务】App Service 默认页面暴露Tomcat版本信息,存在安全风险

Tomcat,版本,安全,信息 · 浏览次数 : 25

小编点评

```java // Index Page public void indexPage() { // Header

Hey, Java developers!

// Content

Your app service is up and running.

// Technical Information
// Bootstrap JavaScript } ``` This code generates an index page with the following content: * Header with a title * Content with technical information * Bootstrap JavaScript The technical information is generated in a separate div with the following labels and input fields: * Catalina Base * Jetty Base * Java version * Java home The Bootstrap JavaScript is included at the end of the page.

正文

问题描述

在创建Azure App Service时,服务端的配置使用Java 8 + Tomcat 8.5。默认的根目录页面显示出App Service Tomcat版本信息,存在一定的安全隐患。

如何来避免这个问题呢?

 

问题解答

因为在初始创建App Service时,Azure会根据所选Stack, Web Server的信息默认生成首页内容。大多是情况下,在部署您的应用时,默认的首页内容会被替换掉。

App Service默认使用的首页名称如下(这些文件位于wwwroot目录下):

但对于Java Tomcat服务,默认的首页启动路径为 wwwroot/webapps/ROOT/index.jsp, 所以只需要修改 index.jsp中的内容或者删除这个文件就可以避免根路径 (“/”) 泄露服务信息。

 

修改步骤

1)登录App Service Kudu站点 ( 在左侧目录栏中选择 Advanced Tools –> Go 进入Kudu站点(https://<your app service name>.scm.chinacloudsites.cn/)), 选择 Debug Console 页面

2)  进入 HOME\SITE\WWWROOT\WEBAPPS\ROOT 目录

点击编辑 index.jsp 或者删除这个文件(文件删除后,访问App Service默认URL会返回404错误)

修改index.jsp文件:

如把内容修改为:This is Java Site...保存后,在浏览器中再次访问App Service

 

删除index.jsp文件

以上方式均可以避免在App Service的首页暴露 服务端Tomcat 信息!

 

默认生成的Index.jsp 内容

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="utf-8">

            <meta name="viewport" content="width=device-width, initial-scale=1.0">

                <meta http-equiv="X-UA-Compatible" content="IE=edge">

                    <title>Microsoft Azure App Service - Welcome</title>

                    <link rel="SHORTCUT ICON" href="https://c.s-microsoft.com/favicon.ico?v2" type="image/x-icon"/>

                    <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/bootstrap/4.1.1/css/bootstrap.min.css" crossorigin="anonymous">

                    <link rel="stylesheet" type="text/css" href="https://appservice.azureedge.net/css/linux-landing-page/v3/main.css">

                    <style>

                        #container {

                            position: relative;

                        }

                        #abc{

                            position: relative;

                            bottom: 0px;

                        }

                        .abc{

                            position: relative;

                            bottom: 0px;

                        }

                    </style>

                    <script type="text/javascript">

                        window.onload=function(){try{var a=window.location.hostname;if(a.includes(".azurewebsites.net")){a=a.replace(".azurewebsites.net", "")}var b=document.getElementById("depCenterLink");b.setAttribute("href", b.getAttribute("href") + "&sitename=" + a);}catch(d){}}

                    </script>

    </head>

    <body>

        <nav class="navbar navbar-light bg-light">

            <a class="navbar-brand " href="#">

                <div class="container pl-4 ml-5">

                    <img src="https://appservice.azureedge.net/images/linux-landing-page/v3/microsoft_azure_logo.png" width="270" height="108" alt=""> </div>

            </a>

        </nav>

        <div class="container-fluid container-height mr-2">

            <div class="pt-10 pb-10 mt-10 mb-10 d-xxs-none d-xs-none d-sm-none d-md-none d-lg-block d-xl-block" style="height:20px; width:100%; clear:both;"></div>

            <div class="row">

                <div class="row col-xs-12 col-sm-12 d-block d-lg-none d-xl-none d-md-block d-sm-block d-xs-block">

                    <div class="text-center">

                        <img src="https://appservice.azureedge.net/images/linux-landing-page/v3/java.svg"> </div>

                </div>

                <div class=" extra-pl-small-scr offset-xl-1 offset-lg-1 offset-md-2 offset-sm-2 offset-xs-4 col-xl-5 col-lg-5 col-md-10 col-sm-11 col-xs-11 div-vertical-center">

                    <div class="container-fluid">

                        <div class="row">

                            <h2>Hey, Java developers!</h2>

                        </div>

                        <br>

                        <div class="row">

                            <h4>Your app service is up and running.</h4>

                        </div>

                        <div class="row">

                            <h4>Time to take the next step and deploy your code.</h4>

                        </div>

                        <div class="row info-mg-top">

                            <p class=" pl-0 col-md-6 col-sm-12 info-mg-top">

                                Have your code ready?<br>

                                    Use deployment center to get code published from your client or setup continuous deployment.<br>

                                        <a id='depCenterLink' href="https://go.microsoft.com/fwlink/?linkid=2057852">

                                            <button class="btn btn-primary btn-mg-top" type="submit">Deployment Center</button>

                                        </a>

                            </p>

                            <p class="pl-0 offset-md-1 col-md-5 col-sm-12 info-mg-top">

                                Don't have your code yet?<br>

                                    Follow our quickstart guide and you'll have a full app ready in 5 minutes or less.<br>

                                        <button onclick="location.href='http://aka.ms/java-quickstart-windows'" class="btn btn-primary btn-mg-top" type="submit">Quickstart</button>

                            </p>

                        </div>

                    </div>

                </div>

                <div class="col-xl-5 col-lg-5 col-md-12 d-none d-lg-block">

                    <div class="text-center">

                        <img src="https://appservice.azureedge.net/images/linux-landing-page/v3/java.svg">

                    </div>

                </div>

                <div class="col-xl-1 col-lg-1 col-md-1"></div>

            </div>

            <div class="row">

                <div class=" extra-pl-small-scr offset-xl-1 offset-lg-1 offset-md-2 offset-sm-2 offset-xs-4 col-xl-5 col-lg-5 col-md-10 col-sm-11 col-xs-11 iv-vertical-center">

                    <div class="container-fluid">

                        <div class="row">

                            <b>Technical Information</b>

                        </div>

                        <div class="row">

                            <%@ page import="java.util.*" %>

                            <%

                                ArrayList<String> mainPageProps = new ArrayList<String>();

                                mainPageProps.add("catalina.base");

                                mainPageProps.add("jetty.base");

                                mainPageProps.add("java.version");

                                mainPageProps.add("java.home");

                                for(String name : mainPageProps)

                                {

                                    String value = System.getProperty(name);

                                    if(value != null)

                                    {

                                        out.print(name + ": " + value + "<br>");

                                    }

                                }

                            %>

                        </div>

                    </div>

                </div>

                <div class="col-xl-5 col-lg-5 col-md-12 d-none d-lg-block"></div>

                <div class="col-xl-1 col-lg-1 col-md-1"></div>

            </div>

        </div>

 

        <!-- Bootstrap core JavaScript==================================================-->

        <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-3.2.1.min.js" crossorigin="anonymous"></script>

        <script src="https://ajax.aspnetcdn.com/ajax/bootstrap/4.1.1/bootstrap.min.js" crossorigin="anonymous"></script>

    </body>

</html>Java Index Page

 


 

与【Azure 应用服务】App Service 默认页面暴露Tomcat版本信息,存在安全风险相似的内容:

【Azure 应用服务】App Service 默认页面暴露Tomcat版本信息,存在安全风险

问题描述 在创建Azure App Service时,服务端的配置使用Java 8 + Tomcat 8.5。默认的根目录页面显示出App Service Tomcat版本信息,存在一定的安全隐患。 如何来避免这个问题呢? 问题解答 因为在初始创建App Service时,Azure会根据所选Sta

【Azure 应用服务】App Service的运行状况检查功能失效,一直提示"实例运行不正常"

问题描述 为App Service配置了健康检查,单独访问Health Check Path的路径,返回代码为200。但为什么在App Service的页面上,一直提示“实例运行不正常”呢? 问题解答 通过查看Health Check Path发送的请求,当使用HTTPS的时候,直接返回200,而当

【Azure 应用服务】App Service for Container 无法拉取Docker Hub中的镜像替代方案

问题描述 创建App Service Container服务,选择从Docker Hub中获取appsmith/appsmith-ce 镜像(https://www.appsmith.com/ & https://hub.docker.com/r/appsmith/appsmith-ce/tags

【Azure 应用服务】App Servie网站报403 ModSecurity Action错误

问题描述 App Service 部署应用程序,然后通过App Gateway(WAF) 提供公网访问,但是一直遇见403报错,刷新页面,回退,重新Web页面能缓解403问题。 问题分析 通过浏览器F12抓取网络日志(Network Trace)来定位403返回的情况,发现请求返回的Status为 

【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值

问题描述 App Service中,如何通过 Application Setting 来配置 Key Vault中的值呢? 问题解答 首先,App Service服务可以直接通过引用的方式,无需代码的情况下,为Application Setting中的Key配置Key Vault中保存的值。参考官方

【Azure 应用服务】登录App Service 高级工具 Kudu站点的 Basic Auth 方式

问题描述 从Azure App Service的页面中,直接跳转到高级管理工具Kudu站点(https://.scm.chinacloudsites.cn/)时,可以自动使用AAD用户(即登录Azure门户的订阅账号),同时,也可以使用App Servi

【Azure 应用服务】 在App Service中无法上传证书[Private Key Certificates (.pfx)],导入Azure Key Vault中的证书也无法成功

问题描述 在App Service的TLS/SSL settings页面,切换到Private Key Certificates (.pfx),通过Import Key Vault Certificate方式上传证书,提示成功,实际没有上传成功。通过Upload Certificate的方式上传证书

【Azure 应用服务】在App Service中新建WebJob时候遇见错误,不能成功创建新的工作任务

问题描述 在Azure App Service界面上,添加新的Web Job(工作任务)时,一直添加失败。无详细错误提示,在App Service的Activity Logs(活动日志)中,根本没有添加失败的任何操作记录,这是什么情况呢? Adding WebJob: Failed to add t

【Azure 应用服务】在App Service for Windows中实现反向代理

问题描述 如何在App Service for Windows(.NET Stack)中,如何实现反向代理呢? 正向代理:客户端想要访问一个服务器,但是它可能无法直接访问这台服务器,这时候这可找一台可以访问目标服务器的另外一台服务器,而这台服务器就被当做是代理人的角色 ,称之为代理服务器,于是客户端

【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数

问题描述 在Azure App Service for Windows的环境中,部署.NET应用,其中使用了 SAP NetWeaver RFC函数 (需要加载 sapnwrfc.dll)。详细的错误为: “System.DllNotFoundException: Unable to load DL