GSP879
概览
Google Cloud Armor 是 Google 的企业边缘网络安全解决方案,提供 DDoS 防护、WAF 规则强制执行和大规模自适应可管理性。
Cloud Armor 扩展了预配置 WAF 规则集,旨在抵御 OWASP 十大风险 Web 应用安全漏洞。这些规则集基于 OWASP Modsecurity 核心规则集 3.0.2 版,旨在防范某些最常见的 Web 应用安全风险,包括本地文件包含 (LFI)、远程文件包含 (RFI)、远程代码执行 (RCE) 等。
在本实验中,您将学习如何使用 Google Cloud Armor WAF 规则来抵御某些常见漏洞。
学习内容
在本实验中,您将学习如何完成以下操作:
- 设置实例组和全球负载均衡器以支持服务
- 使用预配置的 WAF 规则配置 Cloud Armor 安全政策,以防范 LFI、RCE、扫描器、协议攻击和会话固定攻击
- 观察日志,以验证 Cloud Armor 是否有效抵御了攻击

OWASP Juice Shop 应用对于开展安全培训、培养安全意识非常有用,因为它的设计特意包含了“OWASP 十大风险安全漏洞”中每一个漏洞的实例。攻击者可以出于测试目的利用它。在本实验中,您将通过它来演示一些应用攻击,随后使用 Cloud Armor WAF 规则来保护应用。该应用以 Google Cloud 负载均衡器作为前端,Cloud Armor 安全政策和规则将应用于该负载均衡器。它在公共互联网上提供服务,因此几乎可以从任何位置访问,并使用 Cloud Armor 和 VPC 防火墙规则进行保护。
设置和要求
点击“开始实验”按钮前的注意事项
请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。
此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。
为完成此实验,您需要:
- 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。
如何开始实验并登录 Google Cloud 控制台
-
点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:
- “打开 Google Cloud 控制台”按钮
- 剩余时间
- 进行该实验时必须使用的临时凭据
- 帮助您逐步完成本实验所需的其他信息(如果需要)
-
点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。
该实验会启动资源并打开另一个标签页,显示“登录”页面。
提示:将这些标签页安排在不同的窗口中,并排显示。
注意:如果您看见选择账号对话框,请点击使用其他账号。
-
如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。
{{{user_0.username | "<用户名>"}}}
您也可以在“实验详细信息”窗格中找到“用户名”。
-
点击下一步。
-
复制下面的密码,然后将其粘贴到欢迎对话框中。
{{{user_0.password | "<密码>"}}}
您也可以在“实验详细信息”窗格中找到“密码”。
-
点击下一步。
重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。
注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
-
继续在后续页面中点击以完成相应操作:
- 接受条款及条件。
- 由于这是临时账号,请勿添加账号恢复选项或双重验证。
- 请勿注册免费试用。
片刻之后,系统会在此标签页中打开 Google Cloud 控制台。
注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。
激活 Cloud Shell
Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。
-
点击 Google Cloud 控制台顶部的激活 Cloud Shell
。
-
在弹出的窗口中执行以下操作:
- 继续完成 Cloud Shell 信息窗口中的设置。
- 授权 Cloud Shell 使用您的凭据进行 Google Cloud API 调用。
如果您连接成功,即表示您已通过身份验证,且项目 ID 会被设为您的 Project_ID 。输出内容中有一行说明了此会话的 Project_ID:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud 是 Google Cloud 的命令行工具。它已预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。
- (可选)您可以通过此命令列出活跃账号名称:
gcloud auth list
- 点击授权。
输出:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (可选)您可以通过此命令列出项目 ID:
gcloud config list project
输出:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
注意:如需查看在 Google Cloud 中使用 gcloud 的完整文档,请参阅 gcloud CLI 概览指南。
准备工作
- 在 Cloud Shell 中设置您的项目 ID:
gcloud config list project
export PROJECT_ID=$(gcloud config get-value project)
echo $PROJECT_ID
gcloud config set project $PROJECT_ID
任务 1. 创建 VPC 网络
- 在 Cloud Shell 中输入以下命令以创建 VPC 网络:
gcloud compute networks create {{{project_0.startup_script.network_name| Network Name}}} --subnet-mode custom
Created
NAME SUBNET_MODE BGP_ROUTING_MODE
{{{project_0.startup_script.network_name| Network Name}}} CUSTOM REGIONAL
创建子网
- 在 Cloud Shell 中,输入以下命令以创建子网:
gcloud compute networks subnets create {{{project_0.startup_script.subnet_name| Subnet Name}}} \
--network {{{project_0.startup_script.network_name| Network Name}}} --range 10.0.0.0/24 --region {{{project_0.startup_script.region_1| Region}}}
Created
NAME REGION NETWORK RANGE
{{{project_0.startup_script.subnet_name| Subnet Name}}} {{{project_0.startup_script.region_1| Region}}} {{{project_0.startup_script.network_name| Network Name}}} 10.0.0.0/24
创建 VPC 防火墙规则
创建 VPC 和子网之后,设置一些防火墙规则。
- 第一条防火墙规则名为
allow-js-site,允许所有 IP 访问测试应用网站外部 IP 的 3000 端口。
- 第二条防火墙规则名为
allow-health-check,允许来自负载均衡器源 IP 的健康检查。
- 在 Cloud Shell 中,输入以下命令以创建防火墙规则,从而允许所有 IP 访问该应用:
gcloud compute firewall-rules create {{{project_0.startup_script.firewall_rule| Firewall Name}}} --allow tcp:3000 --network {{{project_0.startup_script.network_name| Network Name}}}
输出:
Creating firewall...done.
NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED
{{{project_0.startup_script.firewall_rule| Firewall Name}}} {{{project_0.startup_script.network_name| Network Name}}} INGRESS 1000 tcp:3000 False
- 在 Cloud Shell 中输入以下命令,以创建防火墙规则,允许来自 Google 健康检查 IP 地址范围的健康检查:
gcloud compute firewall-rules create {{{project_0.startup_script.firewall_rule1| Firewall Name1}}} \
--network={{{project_0.startup_script.network_name| Network Name}}} \
--action=allow \
--direction=ingress \
--source-ranges=130.211.0.0/22,35.191.0.0/16 \
--target-tags=allow-healthcheck \
--rules=tcp
输出:
Creating firewall...done.
NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED
{{{project_0.startup_script.firewall_rule1| Firewall_Name1}}} {{{project_0.startup_script.network_name| Network Name}}} INGRESS 1000 tcp False
点击检查我的进度以验证是否完成了以下目标:
创建 VPC 网络
任务 2. 设置测试应用
创建测试应用,在本例中是 OWASP Juice Shop Web 服务器。
创建计算实例时,您要使用容器映像来确保服务器具备适当的服务。您在 中部署此服务器,并为其添加网络标记,以允许健康检查。
创建 OWASP Juice Shop 应用
- 使用知名的开源 OWASP Juice Shop 应用作为存在漏洞的应用。您还可以通过 OWASP 网站使用此应用,以进行 OWASP 安全挑战。
gcloud compute instances create-with-container {{{project_0.startup_script.vm_instance| vm_instance}}} --container-image bkimminich/juice-shop \
--network {{{project_0.startup_script.network_name| Network Name}}} \
--subnet {{{project_0.startup_script.subnet_name| Subnet Name}}} \
--private-network-ip=10.0.0.3 \
--machine-type n1-standard-2 \
--zone {{{project_0.startup_script.zone| Zone}}} \
--tags allow-healthcheck
输出:
NAME ZONE MACHINE_TYPE PREEMPTIBLE
{{{project_0.startup_script.vm_instance| vm_instance}}} {{{project_0.startup_script.zone| Zone}}} n1-standard-2
INTERNAL_IP EXTERNAL_IP STATUS
10.0.0.3 RUNNING
点击检查我的进度以验证是否完成了以下目标:
设置测试应用
设置 Cloud 负载均衡器组件:实例组
- 在 Cloud Shell 中,输入以下命令以创建非托管式实例组:
gcloud compute instance-groups unmanaged create {{{project_0.startup_script.vm_instance_group| Instance Group}}} \
--zone={{{project_0.startup_script.zone| Zone}}}
输出:
NAME LOCATION SCOPE NETWORK MANAGED INSTANCES
{{{project_0.startup_script.vm_instance_group| Instance Group}}} {{{project_0.startup_script.zone| Zone}}} zone 0
- 将 Juice Shop Google Compute Engine (GCE) 实例添加到非托管式实例组中:
gcloud compute instance-groups unmanaged add-instances {{{project_0.startup_script.vm_instance_group| Instance Group}}} \
--zone={{{project_0.startup_script.zone| Zone}}} \
--instances={{{project_0.startup_script.vm_instance| VM Instance}}}
输出:
Updated [https://www.googleapis.com/compute/v1/projects//zones/{{{project_0.startup_script.zone| Zone}}}/instanceGroups/{{{project_0.startup_script.vm_instance_group| Instance_Group}}}].
- 将命名端口设置为 Juice Shop 应用的端口:
gcloud compute instance-groups unmanaged set-named-ports \
{{{project_0.startup_script.vm_instance_group| Instance Group}}} \
--named-ports=http:3000 \
--zone={{{project_0.startup_script.zone| Zone}}}
输出:
Updated [https://www.googleapis.com/compute/v1/projects//zones/{{{project_0.startup_script.zone| Zone}}}/instanceGroups/{{{project_0.startup_script.vm_instance_group| Instance Group}}}].
点击检查我的进度以验证是否完成了以下目标:
设置 Cloud 负载均衡器组件 - 实例组
设置 Cloud 负载均衡器组件:健康检查
现在您已经创建了非托管式实例组,接下来创建健康检查、后端服务、网址映射、目标代理和转发规则。
- 在 Cloud Shell 中输入以下命令,为 Juice Shop 服务端口创建健康检查:
gcloud compute health-checks create tcp tcp-port-3000 \
--port 3000
输出:
Created
NAME PROTOCOL
tcp-port-3000 TCP
设置 Cloud 负载均衡器组件:后端服务
- 在 Cloud Shell 中输入以下命令,创建后端服务参数:
gcloud compute backend-services create juice-shop-backend \
--protocol HTTP \
--port-name http \
--health-checks tcp-port-3000 \
--enable-logging \
--global
输出:
NAME BACKENDS PROTOCOL
juice-shop-backend HTTP
- 将 Juice Shop 实例组添加到该后端服务:
gcloud compute backend-services add-backend juice-shop-backend \
--instance-group={{{project_0.startup_script.vm_instance_group| Instance Group}}} \
--instance-group-zone={{{project_0.startup_script.zone| Zone}}} \
--global
输出:
Updated [https://www.googleapis.com/compute/v1/projects/cythom-host1/global/backendServices/juice-shop-backend].
设置 Cloud 负载均衡器组件:网址映射
- 在 Cloud Shell 中输入以下命令,以创建网址映射,将传入请求发送到后端:
gcloud compute url-maps create juice-shop-loadbalancer \
--default-service juice-shop-backend
输出:
NAME DEFAULT_SERVICE
juice-shop-loadbalancer backendServices/juice-shop-backend
设置 Cloud 负载均衡器组件:目标代理
- 在 Cloud Shell 中输入以下命令,以创建目标代理,将传入请求路由到网址映射:
gcloud compute target-http-proxies create juice-shop-proxy \
--url-map juice-shop-loadbalancer
输出:
NAME URL_MAP
juice-shop-proxy juice-shop-loadbalancer
设置 Cloud 负载均衡器组件:转发规则
- 在 Cloud Shell 中输入以下命令,为负载均衡器创建转发规则:
gcloud compute forwarding-rules create juice-shop-rule \
--global \
--target-http-proxy=juice-shop-proxy \
--ports=80
输出:
Created [https://www.googleapis.com/compute/v1/projects/cythom-host1/global/forwardingRules/juice-shop-rule].
验证 Juice Shop 服务是否在线
- 在 Cloud Shell 中执行以下命令:
PUBLIC_SVC_IP="$(gcloud compute forwarding-rules describe juice-shop-rule --global --format="value(IPAddress)")"
echo $PUBLIC_SVC_IP
输出:
<服务的公开 VIP>
请等待几分钟后再继续,否则您可能会收到 HTTP/1.1 404 Not Found 响应。
- 在 Cloud Shell 中执行以下命令:
curl -Ii http://$PUBLIC_SVC_IP
输出:
HTTP/1.1 200 OK
<...>
您也可以在浏览器中查看 Juice Shop!

现在,您已准备好探索 Juice Shop 漏洞,并使用 Cloud Armor WAF 规则集来防范这些漏洞。
点击检查我的进度以验证是否完成了以下目标:
设置 Cloud 负载均衡器组件 - 健康检查
任务 3. 演示已知漏洞
在本实验中,您将通过简化的步骤演示 Cloud Armor WAF 规则传播前后的状态。
观察 LFI 漏洞:路径遍历
“本地文件包含”是指利用请求中缺乏输入验证的漏洞,来查看服务器上存在的文件,从而可能泄露敏感数据的过程。下面展示了路径遍历的可行性。使用浏览器或 curl,观察应用提供的现有路径。
- 在 Cloud Shell 中执行以下命令:
curl -Ii http://$PUBLIC_SVC_IP/ftp
输出:
HTTP/1.1 200 OK
<...>
请注意,路径遍历也同样可以正常工作。
- 在 Cloud Shell 中执行以下命令:
curl -Ii http://$PUBLIC_SVC_IP/ftp/../
输出:
HTTP/1.1 200 OK
<...>
观察 RCE 漏洞
远程代码执行包括各种 UNIX 和 Windows 命令注入场景,允许攻击者执行通常仅限特权用户使用的操作系统命令。下面展示了一个传入的简单 ls 命令执行示例。
curl -Ii http://$PUBLIC_SVC_IP/ftp?doc=/bin/ls
输出:
HTTP/1.1 200 OK
<...>
移除 curl 标志可以观察到完整的输出。
观察已知扫描器的访问情况
商业扫描应用和开源扫描应用都会出于各种目的(包括查找漏洞)执行扫描。这些工具使用常见的 User-Agent 和其他标头。注意观察 curl 使用常见的 User-Agent 标头。
curl -Ii http://$PUBLIC_SVC_IP -H "User-Agent: blackwidow"
输出:
HTTP/1.1 200 OK
<...>
观察协议攻击:HTTP 拆分
某些 Web 应用会使用用户的输入来生成响应中的标头。如果应用未能正确过滤输入,攻击者可能会使用 %0d%0a 序列(用于分隔不同行的 CRLF 序列)来污染输入参数。
这样一来,响应结果可能会被任何执行解析的实体(例如中间代理服务器)解读为两个响应,从而可能在随后的请求中提供虚假内容。在输入参数中插入 %0d%0a 序列,这可能会导致系统显示具有误导性的页面。
curl -Ii "http://$PUBLIC_SVC_IP/index.html?foo=advanced%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2035%0d%0a%0d%0a<html>Sorry,%20System%20Down</html>"
输出:
HTTP/1.1 200 OK
<...>
观察会话固定
curl -Ii http://$PUBLIC_SVC_IP -H session_id=X
输出:
HTTP/1.1 200 OK
<...>
任务 4. 定义 Cloud Armor WAF 规则
- 在 Cloud Shell 中使用以下命令列出预配置 WAF 规则:
gcloud compute security-policies list-preconfigured-expression-sets
EXPRESSION_SET
Sqli-canary
RULE_ID
owasp-crs-v030001-id942110-sqli
owasp-crs-v030001-id942120-sqli
<...>
- 在 Cloud Shell 中使用以下命令,创建 Cloud Armor 安全政策:
gcloud compute security-policies create {{{project_0.startup_script.policy_name| Policy Name}}} \
--description "Block with OWASP ModSecurity CRS"
- 在 Cloud Shell 中更新安全政策默认规则。
注意:默认规则的优先级数值为 2147483647。
gcloud compute security-policies rules update 2147483647 \
--security-policy {{{project_0.startup_script.policy_name| Policy Name}}} \
--action "deny-403"
- 由于默认规则配置为拒绝操作,您必须允许来自您自己的 IP 的访问。请找到您的公共 IP(可以通过 curl、ipmonkey、whatismyip 等方式查找):
MY_IP=$(curl ifconfig.me)
- 添加第一条规则,以允许从您自己的 IP(在下方代码中插入您的 IP)进行访问:
gcloud compute security-policies rules create 10000 \
--security-policy {{{project_0.startup_script.policy_name| Policy Name}}} \
--description "allow traffic from my IP" \
--src-ip-ranges "$MY_IP/32" \
--action "allow"
- 在 Cloud Shell 中更新安全政策,以阻止 LFI 攻击。
应用 OWASP ModSecurity 核心规则集,防止“本地文件包含”所需的路径遍历。
gcloud compute security-policies rules create 9000 \
--security-policy {{{project_0.startup_script.policy_name| Policy Name}}} \
--description "block local file inclusion" \
--expression "evaluatePreconfiguredExpr('lfi-stable')" \
--action deny-403
- 在 Cloud Shell 中更新安全政策,以阻止远程代码执行 (RCE)。
根据 OWASP ModSecurity 核心规则集,应用查找 RCE(包括命令注入)的规则。检测并阻止典型的操作系统命令。
gcloud compute security-policies rules create 9001 \
--security-policy {{{project_0.startup_script.policy_name| Policy Name}}} \
--description "block rce attacks" \
--expression "evaluatePreconfiguredExpr('rce-stable')" \
--action deny-403
- 更新安全政策,以阻止安全扫描器。
应用 OWASP ModSecurity 核心规则集,阻止已知的安全扫描器、脚本化 HTTP 客户端和网络爬虫。
gcloud compute security-policies rules create 9002 \
--security-policy {{{project_0.startup_script.policy_name| Policy Name}}} \
--description "block scanners" \
--expression "evaluatePreconfiguredExpr('scannerdetection-stable')" \
--action deny-403
- 在 Cloud Shell 中更新安全政策,以阻止协议攻击。
根据 OWASP ModSecurity 核心规则集,应用用于查找回车符 (CR) %0d、换行符 (LF) %0a 以及其他类型的协议攻击(例如 HTTP 请求走私)的规则。
gcloud compute security-policies rules create 9003 \
--security-policy {{{project_0.startup_script.policy_name| Policy Name}}} \
--description "block protocol attacks" \
--expression "evaluatePreconfiguredExpr('protocolattack-stable')" \
--action deny-403
- 更新安全政策以阻止会话固定。
根据 OWASP ModSecurity 核心规则集,使用 Cloud Shell 应用以下规则:
gcloud compute security-policies rules create 9004 \
--security-policy {{{project_0.startup_script.policy_name| Policy Name}}} \
--description "block session fixation attacks" \
--expression "evaluatePreconfiguredExpr('sessionfixation-stable')" \
--action deny-403
- 将安全政策附加到后端服务:
gcloud compute backend-services update juice-shop-backend \
--security-policy {{{project_0.startup_script.policy_name| Policy Name}}} \
--global
规则可能需要一段时间才能生效(但不会超过 10 分钟)。
- 经过足够的时间后,测试之前演示的漏洞,以在下一步中确认 Cloud Armor WAF 规则的强制执行情况。
点击检查我的进度以验证是否完成了以下目标:
创建 Cloud Armor 安全政策
观察采用了 OWASP ModSecurity 核心规则集的 Cloud Armor 保护机制
- 在 Cloud Shell 中确认 LFI 漏洞已得到缓解:
curl -Ii http://$PUBLIC_SVC_IP/?a=../
输出:
HTTP/1.1 403 Forbidden
<...>
- 在 Cloud Shell 中确认 RCE 攻击已得到缓解:
curl -Ii http://$PUBLIC_SVC_IP/ftp?doc=/bin/ls
输出:
HTTP/1.1 403 Forbidden
<..>
- 在 Cloud Shell 中确认已知的扫描器检测有效。
curl -Ii http://$PUBLIC_SVC_IP -H "User-Agent: blackwidow"
输出:
HTTP/1.1 403 Forbidden
<..>
- 在 Cloud Shell 中确认协议攻击已得到缓解。
根据 OWASP ModSecurity 核心规则集 3.0.2 版,通过以下方式确认协议攻击已得到缓解:
curl -Ii "http://$PUBLIC_SVC_IP/index.html?foo=advanced%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2035%0d%0a%0d%0a<html>Sorry,%20System%20Down</html>"
输出:
HTTP/1.1 403 Forbidden
<..>
- 在 Cloud Shell 中确认会话固定攻击尝试已被阻止:
curl -Ii http://$PUBLIC_SVC_IP/?session_id=a
输出:
HTTP/1.1 403 Forbidden
<..>
任务 5. 查看 Cloud Armor 安全规则
现在您已经创建了安全政策,下面查看一下配置了哪些规则。

规则按照优先级评估:优先级值较小的规则最先评估,一旦触发,系统就不会继续处理优先级值更高的规则。
- 优先级
9000 - 阻止 LFI(本地文件包含)
- 优先级
9001 - 阻止 RCE(远程代码执行/命令注入)
- 优先级
9002 - 阻止检测到的扫描器
- 优先级
9003 - 阻止 HTTP 拆分和 HTTP 走私等协议攻击
- 优先级
9004 - 阻止会话固定攻击
- 优先级
10000 - 允许您的 IP 地址访问网站
- 优先级
Default - 拒绝。
注意:请注意,为“允许您的 IP”规则配置的优先级数值最大(即最后评估),以允许访问网站,但依然能阻止任何攻击。
任务 6. 观察 Cloud Armor 安全政策日志
在 Cloud Armor 控制台页面中,查看安全政策详情,然后依次点击“日志”标签页和“查看政策日志”链接,前往 Cloud Logging 页面。它会自动基于关注的安全政策执行过滤,例如 resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:。观察 403 错误响应代码,并展开日志详情,观察强制执行的安全政策的名称、匹配的字段值,以及下方预配置的表达式 ID(或签名 ID)。
它会自动基于关注的安全政策执行过滤,例如 resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:()。
- 观察 403 错误响应代码,并展开日志详情,观察强制执行的安全政策的名称、匹配的字段值,以及下方预配置的表达式 ID(或签名 ID)。
以下屏幕截图中的日志示例对应的是本实验所配置的强制执行安全政策。
LFI 日志

RCE 日志

扫描器检测日志

协议攻击日志

会话固定日志

恭喜!
您已使用 Google Cloud Armor WAF 规则成功抵御了一些常见漏洞。
本手册的最后更新时间:2025 年 5 月 12 日
本实验的最后测试时间:2025 年 5 月 12 日
版权所有 2026 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。