如何在GCP中拒绝或重定向.php后缀的访问流量
GCP App Engine + 负载均衡场景下按文件后缀拦截.php请求方案
已验证可落地方案
- CDN内置WAF拦截:无需额外开通GCP云WAF服务,若架构中负载均衡上层已绑定CDN,直接在CDN自带的WAF规则中新增后缀匹配规则,匹配所有请求路径以
.php结尾的流量,配置动作设为拦截(返回403状态码)即可。该方案配置后即时生效,本次问题场景下已通过该方法完成所有指向.php路径(含registry.php/index.php/wp_login.php等)恶意请求的全量拦截。 - 轻量化规则配置方案(来自@John Hanley):逻辑更简洁,无需依赖WAF组件,可直接在现有资源上配置:
- 负载均衡层配置:不要使用复杂的重定向规则,直接在LB的路径路由规则中新增最高优先级规则,路径匹配填写通配符规则
/*.php,后端终点选择「直接返回响应」类型,配置返回403状态码即可。之前配置规则不生效的常见原因是规则优先级设置过低,被排在前面的默认通配路由提前匹配,导致自定义规则未触发 - App Engine层配置:如果不希望调整负载均衡配置,可直接修改服务的
app.yaml部署配置,新增handler规则匹配所有.php结尾的请求,直接返回403响应或指定跳转,配置参考:
- 负载均衡层配置:不要使用复杂的重定向规则,直接在LB的路径路由规则中新增最高优先级规则,路径匹配填写通配符规则
handlers: # 拦截所有.php后缀请求 - url: /.*\.php$ static_files: static/403.html upload: static/403.html secure: always # 其余正常路由规则 - url: /.* script: auto
注意:App Engine的handler规则按配置顺序从上到下匹配,需要把.php拦截规则放在所有通用路由规则的最前面,避免被提前匹配。
内容的提问来源于stack exchange,提问作者AdrianEunoia
相关产品推荐
相关产品推荐

