前提條件
已添加防護網站。
約束條件
-
JS腳本反爬蟲依賴瀏覽器的Cookie機制、JavaScript解析能力,如果客戶端瀏覽器不支持Cookie,此功能無法使用,開啟后會造成永遠無法訪問源站。
-
如果您的業務接入了CDN服務,請謹慎使用JS腳本反爬蟲。
由于CDN緩存機制的影響,JS腳本反爬蟲特性將無法達到預期效果,并且有可能造成頁面訪問異常。
-
網站反爬蟲“js挑戰”和“js驗證”的防護動作默認為“僅記錄”,WAF不支持手動配置“js挑戰”和“js驗證”的防護動作。
-
WAF的JS腳本反爬蟲功能只支持get請求,不支持post請求。
JS腳本反爬蟲檢測機制
開啟JS腳本反爬蟲后,當客戶端發送請求時,WAF會返回一段JavaScript代碼到客戶端。
- 如果客戶端是正常瀏覽器訪問,就可以觸發這段JavaScript代碼再發送一次請求到WAF,即WAF完成js驗證,并將該請求轉發給源站。
- 如果客戶端是爬蟲訪問,就無法觸發這段JavaScript代碼再發送一次請求到WAF,即WAF無法完成js驗證。
- 如果客戶端爬蟲偽造了WAF的認證請求,發送到WAF時,WAF將攔截該請求,js驗證失敗。
通過統計“js挑戰”和“js驗證”,就可以匯總出JS腳本反爬蟲防御的請求次數。
說明“js挑戰”和“js驗證”的防護動作為僅記錄,WAF不支持配置“js挑戰”和“js驗證”的防護動作。
操作步驟
-
登錄管理控制臺。
-
單擊管理控制臺右上角的
,選擇區域。 -
單擊頁面左上方的
,選擇“安全 > Web應用防火墻(獨享版)”。 -
在左側導航樹中,選擇“防護策略”,進入“防護策略”頁面。
-
單擊目標策略名稱,進入目標策略的防護配置頁面。
-
在“網站反爬蟲”配置框中,用戶可根據自己的需要更改網站反爬蟲的“狀態”,單擊“BOT設置”,進入網站反爬蟲規則配置頁面。

-
選擇“特征反爬蟲”頁簽,根據您的業務場景,開啟合適的防護功能。
特征反爬蟲規則提供了兩種防護動作:
-
攔截:發現攻擊行為后立即阻斷并記錄。
注意開啟攔截后,可能會有以下影響:
攔截搜索引擎請求,可能影響網站的搜索引擎優化。
攔截腳本工具,可能會影響部分APP訪問(部分APP的User-Agent未做修改,會匹配腳本工具類爬蟲規則)。
-
僅記錄:默認防護動作,發現攻擊行為后只記錄不阻斷攻擊。
默認開啟“掃描器”防護檢測,用戶可根據業務需要,配置防護動作并開啟其他需要防護的檢測類型。

特征反爬蟲檢測項說明:
檢測項 說明 功能說明 搜索引擎 搜索引擎執行頁面內容爬取任務,如Googlebot、Baiduspider。 開啟后,WAF將檢測并阻斷搜索引擎爬蟲。
說明如果不開啟“搜索引擎”,WAF針對谷歌和百度爬蟲不會攔截。
掃描器 執行漏洞掃描、病毒掃描等Web掃描任務,如OpenVAS、Nmap。 開啟后,WAF將檢測并阻斷掃描器爬蟲。 腳本工具 用于執行自動化任務、程序腳本等,如httpclient、okhttp、python程序等。 開啟后,WAF將檢測并阻斷執行自動化任務、程序腳本等。 說明如果您的應用程序中使用了httpclient、okhttp、python程序等腳本工具,建議您關閉“腳本工具”,否則,WAF會將使用了httpclient、okhttp、python程序等腳本工具當成惡意爬蟲,攔截該應用程序。
其他爬蟲 各類用途的爬蟲程序,如站點監控、訪問代理、網頁分析等。 說明“訪問代理”是指當網站接入WAF后,為避免爬蟲被WAF攔截,爬蟲者使用大量IP代理實現爬蟲的一種技術手段。
開啟后,WAF將檢測并阻斷各類用途的爬蟲程序。 -
-
選擇“JS腳本反爬蟲”頁簽,用戶可根據業務需求更改JS腳本反爬蟲的“狀態”。
默認關閉JS腳本反爬蟲,單擊
,在彈出的“警告”提示框中,單擊“確定”,開啟JS腳本反爬蟲
。
說明JS腳本反爬蟲依賴瀏覽器的Cookie機制、JavaScript解析能力,如果客戶端瀏覽器不支持Cookie,此功能無法使用。
如果您的業務接入了CDN服務,請謹慎使用JS腳本反爬蟲。由于CDN緩存機制的影響,JS腳本反爬蟲特性將無法達到預期效果,并且有可能造成頁面訪問異常。
-
根據業務配置JS腳本反爬蟲規則。
JS腳本反爬蟲規則提供了“防護所有請求”和“防護指定請求”兩種防護動作。
-
除了指定路徑以外,防護其他所有路徑:“防護模式”選擇“防護所有請求”,單擊“添加排除請求規則”,配置防護路徑后,單擊“確認”。

-
只防護指定路徑時:“防護模式”選擇“防護指定請求”,單擊“添加請求規則”,配置防護路徑后,單擊“確認”。

JS腳本反爬蟲防護規則參數說明:
參數 參數說明 示例 規則名稱 自定義規則名稱。 wafjs 路徑 設置JS腳本反爬蟲的URL鏈接中的路徑(不包含域名)。
URL用來定義網頁的地址。基本的URL格式如下:
協議名://域名或IP地址[:端口號]/[路徑名/…/文件名]。
例如,URL為“//www.example.com/admin”,則“路徑”設置為“/admin”。說明該路徑不支持正則。
路徑里不能含有連續的多條斜線的配置,如“///admin”,WAF引擎會將“///”轉為“/”。
/admin 邏輯 在“邏輯”下拉列表中選擇需要的邏輯關系。 包含 規則描述 規則備注信息。 - -
相關操作
- 規則添加成功后,默認的“規則狀態”為“已開啟”,若您暫時不想使該規則生效,可在目標規則所在行的“操作”列,單擊“關閉”。
- 若需要修改添加的JS腳本反爬蟲規則,可單擊待修改的路徑規則所在行的“修改”,修改該規則。
- 若需要刪除添加的JS腳本反爬蟲規則時,可單擊待刪除的路徑規則所在行的“刪除”,刪除該規則。
配置示例-僅記錄腳本工具爬蟲
假如防護域名“www.example.com”已接入WAF,您可以參照以下操作步驟驗證反爬蟲防護效果。
-
執行JS腳本工具,爬取網頁內容。
-
在“特征反爬蟲”頁簽,開啟“腳本工具”,“防護動作”設置為“僅記錄”(WAF檢測為攻擊行為后,只記錄不阻斷)。
-
開啟網站反爬蟲。
-
在左側導航樹中,單擊“防護事件”,進入“防護事件”頁面,您可以查看該防護事件。
配置示例-搜索引擎
放行百度或者谷歌的搜索引擎,同時攔截百度的POST請求。
-
參照配置網站反爬蟲防護規則將“搜索引擎”設置為放行,即將“搜索引擎”的“狀態”設置為

。
-
參照配置精準訪問防護規則定制化防護策略配置如下圖的規則。
