An Azure service that provides protection for web apps.
For this case, a managed-rule exclusion is unlikely to fix it.
The log shows the match is on ARGS_NAMES:clientProfiles.profiles, which means the argument name itself triggered rule 930120, not the JSON value. The documented exclusion mapping for Application Gateway supports ARGS_NAMES:argname to RequestArgNames, and for JSON body fields surfaced as ARGS:fieldname, the guidance is to use RequestArgNames or RequestArgValues rather than RequestBodyPostArgValues.
That means the technically correct exclusion target for this event is RequestArgNames with selector clientProfiles.profiles. Since that exact approach was already tried and the request still blocks, the supported conclusion from the available guidance is:
- The exclusion is either not matching the correct selector as surfaced by the log, or
- Another mitigation is required for this rule/path.
Supported next steps:
- Recheck the WAF log entry and use the exact field shown in
details_data_sas the selector.- For this event, that is
clientProfiles.profiles. - Use
RequestArgNamesas the match variable. - Prefer
Equalsfor the selector match operator when the field name is exact.
- For this event, that is
- Retest after waiting for propagation.
- WAF exclusion changes can take
30–60 secondsto propagate. - If testing immediately after the change, wait
1–2 minutesand retry.
- WAF exclusion changes can take
- If the same
ruleId_s(930120) still appears after using the exact selector, treat the exclusion as ineffective for this scenario and use a different mitigation. - Use one of the documented alternatives when exclusions cannot be created or do not resolve the false positive:
- Change the rule action to
Loginstead of contributing to blocking. - Disable the specific rule if acceptable for the risk posture.
- Create a custom rule that explicitly allows those requests. This bypasses WAF inspection for matching requests, so it is broader and carries more security risk than a targeted managed-rule exclusion.
- Change the rule action to
For the options under consideration:
- Set rule 930120 action to Log: this is the cleaner fallback from the provided guidance when a false positive cannot be handled with exclusions.
- Custom allow rule on the URI: this works, but it is broader because matching requests bypass all WAF inspection.
No supported material here confirms a known product bug specific to 930120, DRS 2.1, or nested JSON-derived ARGS_NAMES on Application Gateway. No supported material here confirms the 40-exclusion limit question either.
References: