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

Action,网站,Servie,App · 浏览次数 : 28

小编点评

## 403 ModSecurity Action 问题的分析和解决方案 **问题分析:** * App Service 部署应用程序,通过 App Gateway(WAF) 提供公网访问。 * 始终遇见 403 错误,刷新页面,回退,重新Web页面能缓解问题。 * WAF日志显示请求被 WAF 阻挡。 * 具体的错误信息为:`403 ModSecurity Action`。 **问题分析步骤:** 1. **查看 WAF 日志:** * 通过 F12 抓取网络日志 (Network Trace)。 * 查询 `403 ModSecurity Action` 关键字。 * 分析日志信息,找出请求被阻挡的原因。 2. **分析日志信息:** * `ClientIP`:客户端 IP 地址。 * `RuleId`:规则 ID。 * `RuleGroup`:规则组 ID。 * `Message`:详细错误信息。 3. **推断问题根源:** * 根据 `AspNet.Cookies` 内容,推断主要根源就是该 cookie 中的 content 命中了 WAF规则。 4. **解决方案:** * **方法一:禁用相关规则** * 尝试禁用与 `AspNet.Cookies`相关的所有规则。 * 注意:此方法会失去对所有请求的防护。 * **方法二:设置 WAF 排除对 `AspNet.Cookies` 中内容的检查** * 在 WAF 配置页面中,设置规则以匹配 `AspNet.Cookies` 内容。 * 此方法保留了对所有请求的防护功能,但可能导致一些场景无法访问。 5. **参考资料:** * `Azure 应用程序网关的 Web 应用程序防火墙排除列表` * `WAF 规则配置指南` **总结:** 403 ModSecurity Action 错误的原因是 `AspNet.Cookies` 内容命中了 WAF规则。 通过禁用相关规则或设置 WAF 排除对 `AspNet.Cookies` 中内容的检查,可以解决 403 错误。

正文

问题描述

App Service 部署应用程序,然后通过App Gateway(WAF) 提供公网访问,但是一直遇见403报错,刷新页面,回退,重新Web页面能缓解403问题。

 

问题分析

通过浏览器F12抓取网络日志(Network Trace)来定位403返回的情况,发现请求返回的Status为 403 ModSecurity Action。

 

搜索“403 ModSecurity Action“关键字,发现它于WAF设置的拦截有关。引用文档:https://docs.azure.cn/zh-cn/articles/azure-operations-guide/application-gateway/aog-application-gateway-qa-waf-invalid-block

如果请求返回的 HTTP Code 是 403,并且 Response Header 是 HTTP/1.1 403 ModSecurity Action,则代表这个请求被 WAF 阻挡。

所以接下来就是查看WAF的日志,查看请求为什么会触发WAF的阻挡规则呢?

 

WAF的日志类似如下:

{
  "instanceId": "ApplicationGatewayRole_IN_***",
  "clientIp": "***.***.***.***",
  "clientPort": "0",
  "requestUri": "/",
  "ruleSetType": "OWASP",
  "ruleSetVersion": "3.0",
  "ruleId": "529404",
  "ruleGroup": "XXXXXXXXXXXXX",
  "message": "SQL Hex Encoding Identified",
  "action": "Matched",
  "site": "Global",
  "details": {
    "message": "Warning. Pattern match \"(?i:(?:\\\\A|[^\\\\d])0x[a-f\\\\d]{3,}[a-f\\\\d]*)+\" at REQUEST_COOKIES:.AspNet.Cookies ....",
    "data": "Matched Data: q0Xf53 found within REQUEST_COOKIES:.AspNet.Cookies: ****************** ...",
    "file": "*********************",
    "line": "850"
  },
  "hostname": "*********.com.cn",
  "transactionId": "97033337381714991745"
}

深入分析日志,可以发现其中包含ClientIP,WAF中配置的RuleId,及具体配置的Message。

 

问题解决

根据配置消息里面的 AspNet.Cookies 内容,推断主要根源就是AspNet.Cookies这个cookie中的内容命中了WAF规则。解决办法有二:

一:通过禁用相关规则Disable掉,但这样也同时失去了该规则对所有请求的防护。

二:可以设置WAF排除对AspNet.Cookies中内容的检查, 如文档<Azure 应用程序网关的 Web 应用程序防火墙排除列表 - Azure 门户 | Azure Docs>中所描述的一样。

 

参考资料

如何快速定位应用程序网关 WAF 功能拦截问题 : https://docs.azure.cn/zh-cn/articles/azure-operations-guide/application-gateway/aog-application-gateway-qa-waf-invalid-block

Web 应用程序防火墙排除列表 : https://docs.azure.cn/zh-cn/web-application-firewall/ag/application-gateway-waf-configuration?tabs=portal#waf-exclusion-lists

 

与【Azure 应用服务】App Servie网站报403 ModSecurity Action错误相似的内容:

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

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

【Azure 应用服务】Function App / App Service 连接 Blob 报错

问题描述 因 Blob 启用了防火墙功能,但是当把App Service 或 Function App的出站IP地址都加入到Blob的白名单中,为什么访问还是403错误呢? 问题解答 Azure Storage的IP网络规则不适用于同一数据中心的客户端。 存储帐户部署在同一区域中的服务使用专用的 A

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

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

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

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

【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 应用服务】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)中,如何实现反向代理呢? 正向代理:客户端想要访问一个服务器,但是它可能无法直接访问这台服务器,这时候这可找一台可以访问目标服务器的另外一台服务器,而这台服务器就被当做是代理人的角色 ,称之为代理服务器,于是客户端