【应用服务 App Service】 App Service Rewrite 实例 -- 限制站点的访问

简介: 【应用服务 App Service】 App Service Rewrite 实例 -- 限制站点的访问

问题描述

在Azure App Service中,当需要限制某些特殊的情况对其进行访问时候,可以通过IP限制逻辑代码判断,或者Rewrite规则。通过IP限制则需要知道客户端访问的IP,而通过逻辑代码则需要对应用代码进行修改导致在部署才改动则会导致成本大增,所以可以有效的使用Rewrite规则来完成需求,比如当需要访问目标站点B时候请求中必须携带password及正确的值才可以访问(password=123456)。

IP限制

使用访问限制可以定义一个按优先级排序的允许/拒绝列表,用于控制在网络中对应用的访问。 该列表可以包含 IP 地址或 Azure 虚拟网络子网。 如果存在一个或多个条目,则在列表末尾会存在一个隐式的“拒绝所有”。

访问限制功能适用于所有应用服务托管工作负载,包括 Web 应用、API 应用、Linux 应用、Linux 容器应用和 Functions。

向应用发出请求时,将会根据访问限制列表中的 IP 地址规则评估 FROM IP 地址。 如果列表中的规则不允许访问该地址,则服务会以“HTTP 403”状态代码进行答复。

如何配置Rewrite规则

通过 web.config 文件配置 rewrite 规则,并将该配置上传到 Kudu站点site/wwwroot/ 目录下。例如:如下的Web 应用 只允许 url 包含 password=123456 才能访问配置。在 rewrite 下添加如下的配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="role1" patternSyntax="ECMAScript" stopProcessing="true">
                    <match url=".*" negate="false" />
                    <action type="CustomResponse" statusCode="403" statusReason="TypeInReasonHere" statusDescription="TypeInDescriptionHere" />
                    <conditions>
                        <add input="{QUERY_STRING}" pattern="^.*password=123456.*$" negate="true" />
                    </conditions>
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

PS:以上匹配规则是对所有的请求URL的参数中是否包含password=123456,如不包含,则返回403. 测试效果如下:

 

 

 

 

参考资料

Azure 应用服务访问限制https://docs.azure.cn/zh-cn/app-service/app-service-ip-restrictions#adding-and-editing-access-restriction-rules-in-the-portal

如何使用重写规则限制 Azure Web 应用的网站访问https://docs.azure.cn/zh-cn/articles/azure-operations-guide/app-service-web/aog-app-service-web-qa-config-permission-only-allow-specified-site-to-access

URL Rewrite Module Configuration Referencehttps://docs.microsoft.com/zh-cn/iis/extensions/url-rewrite-module/url-rewrite-module-configuration-reference

相关文章
|
1月前
|
C# Windows
【Azure App Service】在App Service for Windows上验证能占用的内存最大值
根据以上测验,当使用App Service内存没有达到预期的值,且应用异常日志出现OutOfMemory时,就需要检查Platform的设置是否位64bit。
42 11
|
1月前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
|
1月前
|
Java 开发工具 Windows
【Azure App Service】在App Service中调用Stroage SDK上传文件时遇见 System.OutOfMemoryException
System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
|
1月前
|
安全 Apache 开发工具
【Azure App Service】在App Service上关于OpenSSH的CVE2024-6387漏洞解答
CVE2024-6387 是远程访问漏洞,攻击者通过不安全的OpenSSh版本可以进行远程代码执行。CVE-2024-6387漏洞攻击仅应用于OpenSSH服务器,而App Service Runtime中并未使用OpenSSH,不会被远程方式攻击,所以OpenSSH并不会对应用造成安全风险。同时,如果App Service的系统为Windows,不会受远程漏洞影响!
|
2月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
664 7
|
2月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
735 1
|
6天前
|
移动开发 小程序 PHP
校园圈子论坛系统采取的PHP语音和uni账号开发的小程序APP公众号H5是否只需要4800元?是的,就是只需要4800元
关于校园圈子论坛系统采用PHP语言和uni-app开发的小程序、APP、公众号和H5是否仅需4800元这个问题,实际上很难给出一个确定的答案。这个价格可能受到多种因素的影响
|
2天前
|
人工智能 小程序 数据处理
uni-app开发AI康复锻炼小程序,帮助肢体受伤患者康复!
近期,多家康复机构咨询AI运动识别插件是否适用于肢力运动受限患者的康复锻炼。本文介绍该插件在康复锻炼中的应用场景,包括康复运动指导、运动记录、恢复程度记录及过程监测。插件集成了人体检测、姿态识别等功能,支持微信小程序平台,使用便捷,安全可靠,帮助康复治疗更加高效精准。
|
23天前
|
人工智能 小程序 搜索推荐
uni app下开发AI运动小程序解决方案
本文介绍了在小程序中实现AI运动识别的解决方案。该方案依托于UNI平台,通过高效便捷的插件形式,实现包括相机抽帧控制、人体识别、姿态识别等在内的多项功能,无需依赖后台服务器,大幅提高识别效率和用户体验。方案内置多种运动模式,支持自定义扩展,适用于AI健身、云上赛事、AI体测等多场景,适合新开发和存量改造项目。
|
28天前
|
设计模式 Swift iOS开发
探索iOS开发:从基础到高级,打造你的第一款App
【10月更文挑战第40天】在这个数字时代,掌握移动应用开发已成为许多技术爱好者的梦想。本文将带你走进iOS开发的世界,从最基础的概念出发,逐步深入到高级功能实现,最终指导你完成自己的第一款App。无论你是编程新手还是有志于扩展技能的开发者,这篇文章都将为你提供一条清晰的学习路径。让我们一起开始这段旅程吧!

热门文章

最新文章