觀點 · 資訊分享
AWS WAF 防機器人不必再改網頁:CloudFront 自動幫每一頁塞好偵測腳本,但壓縮與分段下載會跟著變
AWS WAF 的機器人與詐騙防護需要網頁載入一段 JavaScript,以前得自己一頁一頁加。現在 CloudFront 可以在送出 HTML 時自動插入,不用改程式、不另收費,但會影響壓縮、分段下載與 CSP 設定。
- 發布
- 2026-10-31
- 篇幅
- 約 5 分鐘 · 2,205 字
- 結構
- 7 節 + 4 題常見問題
- 標籤

一句話看懂:AWS WAF 的防機器人、防盜帳號功能需要網頁載入一段偵測腳本,現在 CloudFront 可以在送出網頁時自動幫你插入,不用改程式,但會連帶改變壓縮與下載行為。

先用白話講:WAF 的 JavaScript SDK 是什麼?
想像一間百貨公司請了保全在門口檢查來客。光看外表很難分辨誰是真正的客人、誰是來搶限量商品的黃牛集團,所以保全請每位客人在入口拿一張「識別貼紙」,貼紙上會記錄這個人的一些行為特徵,之後在店裡走動時,保全看貼紙就知道要不要多注意。
AWS WAF(網站應用程式防火牆)就是這位保全,而 JavaScript SDK 就是那張貼紙:它在訪客的瀏覽器裡跑,收集訊號、換取一個權杖,讓 WAF 判斷對方是真人還是自動化程式。
問題是,貼紙要有人在每個入口發。以前這件事得由開發者自己在每一個網頁加上一行 script 標籤。
發生什麼事
AWS 在 10 月 30 日宣布 AWS WAF 的「自動 SDK 整合」:
- 開啟後,CloudFront 在送出 HTML 時自動加上 WAF SDK 的 script 標籤,不用改程式碼、建置流程或部署方式
- 適用三組受管規則:Bot Control(targeted 檢查等級)、帳號盜用防護 ATP、假帳號註冊防護 ACFP
- 不另收費
- 在主控台新建、含上述規則的 web ACL 預設開啟;用 CLI、SDK、CDK、CloudFormation 建立的預設關閉;既有的 web ACL 不受影響
官方也點出以前的痛點:常見的設定錯誤是「WAF 那邊開了防護,網頁那邊卻忘了埋腳本」,等於白開。
開之前要先知道的副作用
開發者指南列了不少限制,以下是最容易踩到的幾個:
| 項目 | 官方說明 |
|---|---|
| 哪些頁面會被插入 | 只有狀態碼 200、Content-Type: text/html 的回應 |
| 壓縮 | CloudFront 會向原站要未壓縮內容;原站硬回壓縮檔就不插入 |
| 分段下載 | 會移除 Range 標頭、改回傳整個檔案,影音與續傳下載的流量會增加 |
| 快取 | 已在快取裡的舊頁面要等過期或手動清除才會生效 |
| 指定頁面 | 不能依路徑設定,要排除就讓原站回傳 Cache-Control: no-transform |
| CSP | 頁面的內容安全政策必須允許 SDK 載入與發出請求 |
給開發者的技術細節
- 插入位置:緊接在開頭的
<head>標籤之後。CloudFront 只掃描回應開頭的幾 KB,而且是快速的位元組掃描、不是完整解析 HTML,所以前面若有被註解掉的<head>,標籤可能被插錯地方 - 編碼:只支援與 ASCII 相容的編碼,UTF-16、UTF-32 的文件不會被修改
- 單頁應用(SPA):CloudFront 用 200 回傳的自訂錯誤頁也會被插入,包含 SPA 常用的深層連結備援頁
- 不會插入的情況:被規則擋下、收到 CAPTCHA 或 Challenge、WAF 自訂回應,以及 CloudFront Functions 產生的回應
- 壓縮建議:在快取行為裡開啟 CloudFront 自動壓縮,才能繼續送壓縮檔給訪客
- 設定可用主控台、CLI、SDK、CDK、CloudFormation 調整,API 欄位在
AssociationConfig
如果原站有設 CSP,記得先在測試環境開啟、確認瀏覽器主控台沒有被擋的錯誤再上正式環境。
我的看法
接案做網站時,「改版後漏掉某段追蹤或防護腳本」是很常見的事,尤其頁面是由別的系統產生(例如電商平台、行銷頁工具)時,根本沒辦法自己去改模板。這個功能把這件事搬到 CDN 那一層處理,對已經在用 Bot Control 或 ATP 的團隊來說很實用。
不過我會特別提醒兩件事:第一,影音和大檔下載會受影響,網站如果有放教學影片、可續傳的下載檔,開之前要先估一下流量;第二,CSP 和快取一定要先在測試環境走過一次。小網站如果還沒用到這三組付費規則,這次更新跟你關係不大,不需要為了它特地去開。
名詞小辭典
- WAF(Web Application Firewall):網站應用程式防火牆,專門檢查進入網站的請求,擋掉攻擊與惡意機器人。
- CloudFront:AWS 的 CDN(內容傳遞網路),把網站內容放在離使用者較近的節點,加快載入速度。
- web ACL:AWS WAF 的一組規則設定,綁在 CloudFront 等服務上,決定哪些請求放行、哪些攔下。
- CSP(Content Security Policy):網頁的安全政策,規定瀏覽器只能從哪些來源載入腳本,避免被插入惡意程式。