You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何添加GCP Cloud Armor规则阻止根路径后带?的URL请求

解决GCP Cloud Armor拦截根地址带问号请求的方案

你之前的问题出在对Cloud Armor字段的理解上:request.path仅包含URL中域名到问号之前的路径部分,像/?或/?test这类请求,request.path的值始终是/,问号及后续内容属于查询字符串,不会出现在request.path里,所以用request.path匹配问号的正则肯定无效。

以下是两种可行的拦截规则方案:

方案1:精准拦截根路径下带问号的请求(含空查询)

直接通过完整URL匹配根路径后带有问号的场景,覆盖/?和/?xxx两种情况:

request.path == '/' && request.raw_url.matches('.*/\\?.*')

这里\\?是RE2语法中对问号的转义(问号在正则里属于特殊元字符,必须转义才能匹配实际的问号符号)。

方案2:拆分场景组合拦截

如果需要分别匹配空查询和带内容的查询,也可以用组合条件:

request.path == '/' && (request.query != '' || request.raw_url.matches('.*/\\?$'))

其中request.query != ''匹配/?test这类带查询内容的请求,request.raw_url.matches('.*/\\?$')匹配/?这种仅带问号的空查询请求。

配置规则时,将动作设置为DENY并指定合适的优先级,之后可通过发送对应测试请求验证拦截效果。

内容的提问来源于stack exchange,提问作者ヒュジャク ピョテレク

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 10:23:20