部分搜索引擎的爬虫无法正确处理JavaScript Challenge(一种网络安全技术),例如会直接将Challenge响应作为索引内容并显示在搜索结果页面上,严重影响网站的SEO表现。接下来主要分享如何使用Amazon Q Developer CLI生成复杂的WAF规则,实现了对合法搜索引擎爬虫的准确识别,确保在DDoS攻击期间网站的搜索引擎可见性不受影响。
涉及产品:亚马逊云科技Amazon Q Developer CLI(点击注册AWS免费试用)
一、Amazon Q Developer CLI介绍
Amazon Q Developer CLI是AWS推出的一款命令行界面工具,为开发者提供AI驱动的编程和云资源管理辅助功能。它是Amazon Q产品家族中专为开发者设计的命令行工具,能够直接在终端中提供智能帮助。
核心功能:
- 基于自然语言的代码生成和问答能力;
- 智能化的 AWS 资源管理和操作;
- 本地文件系统和命令执行支持;
- 上下文感知的开发辅助。
Amazon Q Developer CLI 采用客户端-服务器架构:
- 客户端:轻量级命令行工具,处理用户输入和输出展示;
- 服务端:由 AWS 托管的 AI 模型和服务,处理自然语言理解和代码生成;
- 中间层:安全通信层,确保数据传输加密和用户认证。
AWS于2025年6月推出了全自动化的 WAF AntiDDoS 托管规则组。相比于 AWS Shield Advanced,它提供更快速的秒级检测与缓解,以及更高精准度和更灵活的配置。其中 ChallengeAllDuringEvent 规则会在攻击事件发生时,对所有请求(除了预先定义的 Challenge URI 例外路径)进行 JavaScript Challenge(软性缓解)。
当搜索引擎的爬虫无法正确处理JavaScript Challenge时,可能会直接将Challenge响应作为索引内容并显示在搜索结果页面上,从而严重影响网站SEO,如下图所示:

往期文章《Amazon WAF Bot Control增强网站安全与SEO操作指南》中介绍了WAF Common Bot Control托管规则组如何识别合法 SEO 爬虫和业务机器人。但在AntiDDoS场景下,使用Bot Control来标记搜索引擎爬虫并配置Scope-down成本过高,不够经济。
这时候我们可以借鉴 Common Bot Control 的识别原理,利用同样在2025年6月发布的 ASN (Autonomous System Number) match statement 功能。通过同时验证 User-Agent 关键字和爬虫 IP 地址所属的 ASN,可以准确识别请求是否来自合法的搜索引擎爬虫。
这种双重验证机制既能防止恶意用户伪造 User-Agent,又能确保只有真正来自搜索引擎官方 IP 段的请求才会被排除在 Challenge 之外。
二、使用Amazon Q Developer CLI生成复杂的WAF规则这种识别逻辑涉及复杂的多层嵌套条件判断,手工编写 JSON 规则既耗时又容易出错。使用 Amazon Q Developer CLI 可以大大简化这个过程。Amazon Q Developer CLI 是 Amazon Q 的命令行工具,Amazon Q 是一个由生成式 AI 驱动的助手。
我们可以使用它来询问有关 AWS 架构、资源和一般开发任务的问题。向 Q CLI 描述需求让它生成相应的 WAF scope-down statement。

由于 WAF ASN match statement 功能刚发布不久,超出了 AI 模型的训练数据范围,Q CLI 最初提供的 Scope-down statement 使用了 IP Set 或 Label 来判断爬虫 IP 地址是否属于 ASN 15169(Google)或 ASN 8075(Microsoft Bing)。
下面参考 AWS WAF Developer Guide 中的 ASN match statement 示例,将正确的语法结构提供给 Q CLI 进行学习和调整。

可以看出,仅通过 2 次交互,Q CLI 就成功生成了包含多层嵌套逻辑的复杂 WAF scope-down statement,大大提高了开发效率。完整的 Scope-down statement 如下:
三、配置AntiDDoS托管规则组{
“NotStatement”: {
“Statement”: {
“OrStatement”: {
“Statements”: [
{
“AndStatement”: {
“Statements”: [
{
“ByteMatchStatement”: {
“SearchString”: “google”,
“FieldToMatch”: {
“SingleHeader”: {
“Name”: “user-agent”
}
},
“TextTransformations”: [
{
“Priority”: 0,
“Type”: “LOWERCASE”
}
],
“PositionalConstraint”: “CONTAINS”
}
},
{
“AsnMatchStatement”: {
“AsnList”: [
15169
]
}
}
]
}
},
{
“AndStatement”: {
“Statements”: [
{
“ByteMatchStatement”: {
“SearchString”: “bing”,
“FieldToMatch”: {
“SingleHeader”: {
“Name”: “user-agent”
}
},
“TextTransformations”: [
{
“Priority”: 0,
“Type”: “LOWERCASE”
}
],
“PositionalConstraint”: “CONTAINS”
}
},
{
“AsnMatchStatement”: {
“AsnList”: [
8075
]
}
}
]
}
}
]
}
}
}
}
接下来配置 AntiDDoS AMR:
1、在 Web ACL 中编辑AWS-AWSManagedRulesAntiDDoSRuleSet;
2、在 Scope of inspection 部分选择 Only inspect requests that match a scope-down statement;
3、点击 Rule JSON editor;
4、将上面生成的 statement 内容复制粘贴到编辑器中;
5、保存配置。

配置完成后,即使在DDoS攻击期间,来自 Google 和 Microsoft Bing 的合法爬虫请求也不会受到 ChallengeAllDuringEvent 规则的影响,确保网站的搜索引擎可见性。
Google 和 Microsoft Bing 占据了超过 90% 的搜索引擎市场份额。如果需要支持其他搜索引擎爬虫(如百度、Yandex 等),可以采用相同的方法,让 Q CLI 生成包含相应 ASN 的新 Scope-down statement。您还可以将 Scope-down statement 中的关键字改成 Googlebot 和 Bingbot即可。
相关推荐:
(本文由美国主机侦探原创,转载请注明出处“美国主机侦探”和原文地址!)
微信扫码加好友进群
主机优惠码及时掌握
QQ群号:938255063
主机优惠发布与交流




