【Azure 应用服务】探索在Azure上设置禁止任何人访问App Service的默认域名(Default URL)

简介: 【Azure 应用服务】探索在Azure上设置禁止任何人访问App Service的默认域名(Default URL)

问题描述

总所周知,Azure App Service服务会默认提供一个 ***.chinacloudsites.cn为后缀的域名,但是该域名由上海蓝云网络科技有限公司备案,仅用于向其客户提供 Azure 服务。

 

 

而如果不进行ICP备案,任何通过公网流量访问默认域名都会被封堵。因为Azure后台会根据对默认域名的请求次数和频率自动扫描,如果被扫中,就会被封堵。所以为了避免这样的情况,所以需要禁止任何人使用默认域名访问!

问题分析

方式一:使用IIS的rewrite规则,发现访问的时默认域名,返回403

修改App Service wwwroot根目录中的web.config文件(如没有,可以直接复制下文内容,新建web.config文件)

<system.webServer>
              <rewrite>
                  <rules>
                    <rule name="Disable Azure Domain" patternSyntax="Wildcard" stopProcessing="true">
                      <match url="*" />
                      <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{HTTP_HOST}" pattern="*.chinacloudsites.cn" />
                      </conditions>
                      <action type="CustomResponse" statusCode="403" />
                    </rule>
                  </rules>
                </rewrite>
  </system.webServer>

修改后效果:

 

 

方式二:使用应用程序网关,保护后端App Service

1)创建应用程序网关,按照教程把网关的后端池设置为App Service (又名 Web App)

 

教程:将应用服务添加为后端池:https://docs.azure.cn/zh-cn/application-gateway/configure-web-app-portal#add-app-service-as-backend-pool

 

2)回到App Service页面,进入Network网络设置页面,在限制访问中,配置只允许应用程序网关的IP地址进行访问。

注意:此时,自定义域名就不是绑定在App Service上,而是通过A记录的方式,在DNS服务器配置上指向应用程序网关的IP地址。

 

验证效果:

 

 

 

参考资料

Rewrite配置信息https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/url-rewrite-module-configuration-reference#rewrite-rule-configuration

将应用服务添加为后端池https://docs.azure.cn/zh-cn/application-gateway/configure-web-app-portal#add-app-service-as-backend-pool

设置 Azure 应用服务访问限制https://docs.azure.cn/zh-cn/app-service/app-service-ip-restrictions

相关文章
|
2月前
|
Java 应用服务中间件 API
【App Service】部署War包到Azure云上遇404错误
Java应用部署至Azure App Service for Windows后报404,本地运行正常。经排查,日志提示类文件版本不兼容:应用由Java 17(class file version 61.0)编译,但环境仅支持到Java 11(55.0)。错误根源为Java版本不匹配。调整App Service的Java版本至17后问题解决,成功访问接口。
174 2
|
2月前
|
存储 Linux 网络安全
【Azure App Service】Root CA on App Service
Azure App Service for Windows应用连接外部SSL服务时,需确保其证书由受信任的根CA颁发。多租户环境下无法修改根证书,但ASE(单租户)可加载自定义CA证书。若遇证书信任问题,可更换为公共CA证书或将应用部署于ASE并导入私有CA证书。通过Kudu的PowerShell(Windows)或SSH(Linux)可查看当前受信任的根证书列表。
109 13
|
3月前
|
API 网络架构 容器
【Azure Container App】查看当前 Container App Environment 中的 CPU 使用情况的API
在扩展 Azure Container Apps 副本时,因 Container App Environment 的 CPU 核心数已达上限(500 cores),导致扩展失败。本文介绍如何使用 `az rest` 命令调用 Azure China Cloud 管理 API,查询当前环境的 CPU 使用情况,并提供具体操作步骤及示例。
156 16
|
3月前
|
数据安全/隐私保护
【Azure Function App】PowerShell Function 执行 Get-AzAccessToken 的返回值类型问题:System.String 与 System.Security.SecureString
将PowerShell Function部署到Azure Function App后,Get-AzAccessToken返回值类型在不同环境中有差异。正常为SecureString类型,但部分情况下为System.String类型,导致后续处理出错。解决方法是在profile.ps1中设置环境变量$env:AZUREPS_OUTPUT_PLAINTEXT_AZACCESSTOKEN=false,以禁用明文输出。
143 0
uView queryParams 对象转URL参数
uView queryParams 对象转URL参数
224 0
|
前端开发 JavaScript
前端JS截取url上的参数
文章介绍了两种前端JS获取URL参数的方法:手动截取封装和使用URLSearchParams。
408 0
|
开发框架 前端开发 .NET
Asp.net Webapi 的 Post 方法不能把参数加到 URL 中?试试这样写
Asp.net Webapi 的 Post 方法不能把参数加到 URL 中?试试这样写
285 0
|
Java
JAVA 获取 URL 指定参数的值
JAVA 获取 URL 指定参数的值
221 0
|
存储 JavaScript 前端开发
js原生方法,获取url上面所有参数,并返回一个对象
JavaScript函数`getUrlParameters`用于从URL中提取所有参数并返回一个键值对对象。它接收URL,分割查询字符串,解码参数对,并存储在对象中。重复参数键会被存储为数组。
|
JavaScript 前端开发 数据格式
URL编码【详解】——Javascript对URL进行编码解码的三种方式的区别和使用场景,axios请求拦截器中对get请求的参数全部进行URL编码
URL编码【详解】——Javascript对URL进行编码解码的三种方式的区别和使用场景,axios请求拦截器中对get请求的参数全部进行URL编码
944 0