本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Web 應用程式中嵌入 Honeypot 連結 (選用)
如果您在步驟 yes
1 中選擇啟用無效的機器人保護參數。 啟動堆疊,CloudFormation 範本會建立低互動生產 Honeypot 的陷阱端點。此陷阱旨在偵測和轉移來自內容湊集器和不良機器人的傳入請求。有效使用者不會嘗試存取此端點。
除了 Honeypot 機制之外,此元件還會監控 Application Load Balancer (ALB) 或 Amazon CloudFront 的直接連線,藉此增強錯誤的機器人偵測。如果機器人繞過 Honeypot 並嘗試與 ALB 或 CloudFront 互動,系統會分析請求模式和日誌,以識別惡意活動。偵測到錯誤的機器人時,會擷取其 IP 地址並新增至 AWS WAF 封鎖清單,以防止進一步存取。錯誤的機器人偵測會透過結構化邏輯鏈運作,以確保全面的威脅涵蓋範圍:
-
HTTP 洪水防護 Lambda 日誌剖析器 – 在洪水分析期間從日誌項目收集錯誤的機器人 IPs。
-
掃描器和探查保護 Lambda 日誌剖析器 – 從掃描器相關日誌項目識別錯誤的機器人 IPs。
-
HTTP 洪水防護 Athena 日誌剖析器 – 使用跨查詢執行的分割區,從 Athena 日誌擷取錯誤的機器人 IPs。
-
掃描器和探查保護 Athena 日誌剖析器 – 使用相同的分割策略,從掃描器相關的 Athena 日誌擷取錯誤的機器人 IPs。
-
備用偵測 – 如果同時停用 HTTP 洪水防護和掃描器與探查防護,系統會依賴 Log Lambda 剖析器,該剖析器會根據 WAF 標籤篩選條件記錄機器人活動。
使用下列其中一個程序,為來自 CloudFront 分佈的請求嵌入 Honeypot 連結。
為 Honeypot 端點建立 CloudFront 原始伺服器
針對使用 CloudFront 分佈部署的 Web 應用程式,請使用此程序。使用 CloudFront,您可以包含 robots.txt
檔案,以協助識別忽略機器人排除標準的內容抓取器和機器人。請完成下列步驟,以嵌入隱藏的連結,然後明確地在您的 robots.txt
檔案中不允許該連結。
-
選擇您在步驟 1 中建置的堆疊。啟動堆疊
-
選擇 Output (輸出) 索引標籤。
-
從 BadBotHoneypotEndpoint 金鑰複製端點 URL。
-
行為路徑 (
/ProdStage
)
-
-
在指向 Honeypot 的內容中嵌入此端點連結。從您的人類使用者隱藏此連結。例如,請檢閱下列程式碼範例:
<a href="/behavior_path" rel="nofollow" style="display: none" aria-hidden="true">honeypot link</a>
。 -
修改網站根目錄中
robots.txt
的檔案,以明確禁止 Honeypot 連結,如下所示:
User-agent: <*> Disallow: /<behavior_path>
重要
CloudFront 中不需要任何路徑註冊,因為請求為:被 WAF BadBotRuleFilter 封鎖。自動在日誌中收集的解決方案。由日誌剖析器 lambda 處理。這種簡化的方法直接使用 WAF 日誌,而不是需要額外的端點組態,透過日誌分析讓錯誤的機器人偵測程序更有效率
注意
您有責任驗證哪些標籤值適用於您的網站環境。rel="nofollow"
如果您的環境未觀察到,請勿使用 。如需機器人中繼標籤組態的詳細資訊,請參閱 Google 開發人員指南robots.txt
的檔案,以明確禁止 Honeypot 連結,如下所示:
將 Honeypot 端點內嵌為外部連結
注意
這些規則使用來自 Web 請求原始伺服器的來源 IP 地址。如果您有流經一或多個代理或負載平衡器的流量,Web 請求原始伺服器將包含最後一個代理的地址,而不是用戶端的原始地址。
針對 Web 應用程式使用此程序。
-
選擇您在步驟 1 中建置的堆疊。啟動堆疊。
-
選擇 Output (輸出) 索引標籤。
-
從 BadBotHoneypotEndpoint 金鑰複製端點 URL。
<a href="<BadBotHoneypotEndpoint value>" rel="nofollow" style="display: none" aria-hidden="true"><honeypot link></a>
注意
此程序使用
rel=nofollow
指示機器人不要存取 Honeypot URL。不過,由於連結是在外部內嵌,因此您無法包含明確不允許連結robots.txt
的檔案。您有責任驗證哪些標籤可在您的網站環境中運作。rel="nofollow"
如果您的環境未觀察到,請勿使用 。