關(guān)注 霍格沃茲測(cè)試學(xué)院公眾號(hào),回復(fù)「資料」, 取人工智能測(cè)試開發(fā)技術(shù)集讀貴州萬(wàn)能膠廠家
過(guò)去幾年,很多團(tuán)隊(duì)做瀏覽器自動(dòng)化時(shí),都會(huì)遇到個(gè)很現(xiàn)實(shí)的問(wèn)題:
腳本明明能跑,頁(yè)面也能開,但只要進(jìn)入登錄、搜索、下單、表單提交、內(nèi)容訪問(wèn)等稍微敏感點(diǎn)的流程,就很容易觸發(fā)驗(yàn)證碼、風(fēng)控?cái)r截、訪問(wèn)異常,甚至直接被判定為自動(dòng)化流量。
這背后并不只是 navigator.webdriver 個(gè)字段的問(wèn)題。
現(xiàn)代反機(jī)器人系統(tǒng)早就不再只看“你是不是用了 Playwright / Puppeteer / Selenium”,而是在綜判斷個(gè)瀏覽器環(huán)境是否像真實(shí)用戶:
你的 Canvas 輸出是否異常?
WebGL、GPU、字體、插件、屏幕參數(shù)是否致?
TLS 指紋、網(wǎng)絡(luò)時(shí)序、WebRTC、CDP 行為是否露出自動(dòng)化痕跡?
鼠標(biāo)軌跡、輸入節(jié)奏、滾動(dòng)行為是否像真人?
近開源項(xiàng)目 CloakBrowser 受到不少關(guān)注,它給出的思路不是繼續(xù)在 JavaScript 層“補(bǔ)丁”,也不是簡(jiǎn)單改幾個(gè)啟動(dòng)參數(shù),而是把瀏覽器指紋修補(bǔ)進(jìn)到 Chromium C++ 源碼層。項(xiàng)目 README 中描述,它是圍繞自定義 Chromium 二進(jìn)制構(gòu)建的 Python / JavaScript 封裝,并支持作為 Playwright / Puppeteer 的替代入口使用。
這件事對(duì)測(cè)試開發(fā)、自動(dòng)化工程和 AI Agent 瀏覽器操作,都是個(gè)值得拆開的技術(shù)信號(hào)。
目錄
自動(dòng)化瀏覽器為什么越來(lái)越容易被識(shí)別CloakBrowser 的核心思路:不是偽裝腳本,而是改瀏覽器本身它解決的不是驗(yàn)證碼,而是“瀏覽器環(huán)境致”從測(cè)試開發(fā)視角看,它真正有價(jià)值的地為什么源碼補(bǔ)丁比 JS 注入難被識(shí)別自動(dòng)化測(cè)試、爬蟲、AI Agent 的邊界會(huì)怎么變化工程落地要注意什么1. 自動(dòng)化瀏覽器為什么越來(lái)越容易被識(shí)別?
很多人對(duì)瀏覽器自動(dòng)化的理解,還停留在以前:
用 Playwright 開頁(yè)面;
定位元素;
點(diǎn)擊按鈕;
填寫表單;
抓取內(nèi)容;
跑完關(guān)閉。
但在真實(shí)業(yè)務(wù)系統(tǒng)里,瀏覽器自動(dòng)化已經(jīng)不是單純的“頁(yè)面操作問(wèn)題”,而是個(gè)完整的環(huán)境可信度問(wèn)題。
現(xiàn)在的風(fēng)控系統(tǒng)通常會(huì)從多個(gè)層面判斷請(qǐng)求是否可信:
也就是說(shuō),個(gè)自動(dòng)化腳本即使寫得很穩(wěn)定,只要瀏覽器環(huán)境露出“不像真實(shí)用戶”的痕跡,依然會(huì)被識(shí)別。
這也是為什么很多人會(huì)遇到種情況:
本地調(diào)試正常,放到服務(wù)器就異常;
普通頁(yè)面能訪問(wèn),關(guān)鍵流程就觸發(fā)驗(yàn)證;
換了代理也不行,因?yàn)閱?wèn)題不只在 IP;
明明 headless 關(guān)閉了,還是被識(shí)別為自動(dòng)化。
自動(dòng)化瀏覽器正在從“能不能操作頁(yè)面”,進(jìn)入“能不能構(gòu)造可信瀏覽器環(huán)境”的階段。
2. CloakBrowser 的核心思路:不是偽裝腳本,而是改瀏覽器本身
CloakBrowser 比較有代表的地在于,它不是在頁(yè)面加載后注入段 JS 去覆蓋瀏覽器字段,而是修改 Chromium 源碼,再編譯成自定義瀏覽器二進(jìn)制。
項(xiàng)目說(shuō)明中提到,它通過(guò)源碼 C++ 補(bǔ)丁處理 GPU、屏幕、用戶代理、硬件報(bào)告等瀏覽器指紋信息,而不是依賴 JavaScript 注入或配置修改。([GitHub][1])
這就形成了個(gè)很重要的差異:
傳統(tǒng) stealth 工具像是在瀏覽器外面貼層“偽裝膜”。
CloakBrowser 像是把瀏覽器底層返回的數(shù)據(jù)結(jié)構(gòu)、渲染行為、自動(dòng)化信號(hào)本身做了改造。
這也是它被關(guān)注的原因。
3. 它解決的不是驗(yàn)證碼,而是“瀏覽器環(huán)境致”
很多人看到這類項(xiàng)目,反應(yīng)會(huì)把它理解成“驗(yàn)證碼繞過(guò)工具”。
這個(gè)理解其實(shí)不準(zhǔn)確,也不建議這樣表達(dá)。
CloakBrowser 項(xiàng)目本身也明確說(shuō)明:它不提供驗(yàn)證碼破解服務(wù),也不內(nèi)置代理輪換;它的目標(biāo)是減少驗(yàn)證碼出現(xiàn)的概率,而不是解決驗(yàn)證碼本身。([GitHub][1])
從工程角度看,它真正處理的是三件事:
,減少自動(dòng)化瀏覽器的明顯異常信號(hào)。
例如常見的 webdriver 標(biāo)識(shí)、HeadlessChrome 暴露、插件列表異常、window.chrome 缺失、CDP 自動(dòng)化痕跡等。
二,提瀏覽器指紋之間的致。
很多自動(dòng)化環(huán)境的問(wèn)題不是某個(gè)字段錯(cuò)了,而是多個(gè)字段組起來(lái)不理。
比如:
UA 顯示 Windows,但字體像 Linux;
GPU 信息和平臺(tái)不匹配;
語(yǔ)言、時(shí)區(qū)和代理出口 IP 不致;
Canvas、WebGL、Audio 指紋之間缺乏穩(wěn)定關(guān)聯(lián);
同個(gè)會(huì)話每次都像新設(shè)備。
三,讓自動(dòng)化行為接近真實(shí)用戶行為。
項(xiàng)目資料中提到,CloakBrowser 支持 humanize 行為模擬,包括鼠標(biāo)曲線、鍵盤輸入時(shí)機(jī)、滾動(dòng)模式等;也支持持久化配置文件、代理時(shí)區(qū)語(yǔ)言匹配、WebRTC IP 處理等能力。
這些能力的目標(biāo),本質(zhì)上是讓自動(dòng)化環(huán)境從“腳本執(zhí)行器”接近“真實(shí)瀏覽器會(huì)話”。
4. 為什么源碼補(bǔ)丁有技術(shù)含量?
過(guò)去常見的 stealth 案,通常有三類:
類是啟動(dòng)參數(shù)修改。
例如關(guān)閉某些自動(dòng)化特征、修改 UA、禁用某些 blink features。
二類是 JS 注入。
在頁(yè)面初始化前注入腳本,重寫 navigator、plugins、permissions、webdriver 等對(duì)象。
三類是驅(qū)動(dòng)層規(guī)避。
例如修改 WebDriver 行為、調(diào)整 CDP 調(diào)用、隱藏自動(dòng)化控制痕跡。
這些案能解決部分問(wèn)題,但也有明顯短板:
頁(yè)面越早檢測(cè),越容易在注入前發(fā)現(xiàn)異常;
瀏覽器新后,補(bǔ)丁容易失;
JS 覆蓋可能留下 getter、descriptor、prototype 等不自然痕跡;
字段改了,但底層渲染輸出不致;
多個(gè)信號(hào)之間很難保持整體致。
CloakBrowser 的思路是把補(bǔ)丁放到 Chromium 源碼層,這意味著某些值不是“頁(yè)面上被臨時(shí)改寫”,而是瀏覽器底層直接返回修改后的結(jié)果。
這就是它與 playwright-stealth、puppeteer-extra-plugin-stealth、undetected-chromedriver 這類工具的主要區(qū)別。
可以簡(jiǎn)單理解為:
所以它的價(jià)值不只是“能不能過(guò)某個(gè)檢測(cè)網(wǎng)站”貴州萬(wàn)能膠廠家,而是代表自動(dòng)化瀏覽器進(jìn)入了底層的工程競(jìng)爭(zhēng)。
5. 它的能力可以怎么理解?
從資料來(lái)看,CloakBrowser 的能力可以分成五層。
層:源碼指紋補(bǔ)丁。
項(xiàng)目資料中提到,它覆蓋 Canvas、WebGL、音頻、字體、GPU、屏幕、WebRTC、網(wǎng)絡(luò)時(shí)序、自動(dòng)化信號(hào)、CDP 輸入行為等多個(gè)向。
二層:自動(dòng)化框架兼容。
它不是重新發(fā)明套自動(dòng)化 API,而是盡量兼容 Playwright / Puppeteer 的調(diào)用式。對(duì)已有自動(dòng)化工程來(lái)說(shuō),保溫護(hù)角專用膠這意味著遷移成本相對(duì)低。
三層:行為擬人化。
現(xiàn)代風(fēng)控不只看瀏覽器參數(shù),也看行為軌跡。比如鼠標(biāo)是否瞬移,輸入是否瞬間完成,滾動(dòng)是否機(jī)械。
四層:會(huì)話持久化。
真實(shí)用戶不是每次開頁(yè)面都像個(gè)全新設(shè)備。Cookie、localStorage、緩存、字體、服務(wù)工作線程等,都會(huì)逐漸形成用戶畫像。
五層:部署致。
本地、Docker、VPS、CI 環(huán)境中的瀏覽器差異,往往是自動(dòng)化穩(wěn)定的來(lái)源之。CloakBrowser 試圖通過(guò)統(tǒng)二進(jìn)制和封裝層降低這種差異。
6. 從測(cè)試開發(fā)視角看,它真正值得關(guān)注什么?
如果只是把 CloakBrowser 理解成“采集工具”,就把它看窄了。
對(duì)測(cè)試開發(fā)來(lái)說(shuō),它值得關(guān)注的是三個(gè)向。
向:反自動(dòng)化檢測(cè)本身也需要測(cè)試
很多業(yè)務(wù)系統(tǒng)都有風(fēng)控、登錄保護(hù)、異常訪問(wèn)識(shí)別、驗(yàn)證碼策略、設(shè)備指紋策略。
但這些策略往往很難測(cè)試。
因?yàn)槠胀ㄗ詣?dòng)化腳本太容易被識(shí)別,致測(cè)試結(jié)果失真。
例如:
我們想驗(yàn)證正常用戶是否被誤傷;
想驗(yàn)證不同設(shè)備環(huán)境下的風(fēng)險(xiǎn)評(píng)分;
想驗(yàn)證風(fēng)控系統(tǒng)對(duì) headless、代理、異常行為的識(shí)別能力;
想回歸測(cè)試驗(yàn)證碼策略是否過(guò)度攔截;
想做自動(dòng)化巡檢,但又不希望巡檢腳本被錯(cuò)誤識(shí)別為異常訪問(wèn)。
這類場(chǎng)景下,瀏覽器指紋致測(cè)試會(huì)成為個(gè)新的測(cè)試向。
向二:AI Agent 瀏覽器操作需要真實(shí)的執(zhí)行環(huán)境
現(xiàn)在很多 Agent 框架都開始接入瀏覽器:
讓 Agent 自動(dòng)開網(wǎng)頁(yè);
讀取頁(yè)面內(nèi)容;
填寫表單;
點(diǎn)擊按鈕;
完成后臺(tái)操作;
執(zhí)行跨系統(tǒng)流程。
但是 Agent 只要進(jìn)入真實(shí)網(wǎng)站,就會(huì)遇到個(gè)問(wèn)題:
它不是在“讀 HTML”,而是在和真實(shí)瀏覽器、真實(shí)風(fēng)控、真實(shí)交互系統(tǒng)交道。
如果瀏覽器環(huán)境本身眼就像自動(dòng)化工具,Agent 的執(zhí)行能力就會(huì)被限制。
所以未來(lái) AI Agent 的瀏覽器執(zhí)行環(huán)境,大概率會(huì)從“能跑”升到“可信、穩(wěn)定、可觀測(cè)、可回放”。
向三:自動(dòng)化測(cè)試要重新理解“用戶環(huán)境”
以前寫 UI 自動(dòng)化,大關(guān)注的是:
元素定位穩(wěn)不穩(wěn);
等待策略不理;
斷言是否完整;
數(shù)據(jù)是否可控;
流程是否可復(fù)用。
但在復(fù)雜業(yè)務(wù)系統(tǒng)里,未來(lái)還要關(guān)注:
瀏覽器指紋是否理;
測(cè)試環(huán)境與真實(shí)用戶環(huán)境是否致;
自動(dòng)化行為是否影響業(yè)務(wù)風(fēng)控判斷;
CI 環(huán)境是否與本地執(zhí)行結(jié)果致;
不同代理、時(shí)區(qū)、語(yǔ)言、字體、GPU 環(huán)境是否致結(jié)果差異。
這其實(shí)是測(cè)試工程的個(gè)升:從頁(yè)面自動(dòng)化,走向?yàn)g覽器環(huán)境工程。
7. 這類項(xiàng)目也有明顯邊界
CloakBrowser 這類項(xiàng)目雖然技術(shù)上很有討論價(jià)值,但不能把它化。
,反機(jī)器人檢測(cè)是持續(xù)對(duì)抗,不存在通關(guān)。
項(xiàng)目說(shuō)明中也提到,檢測(cè)是場(chǎng)軍備競(jìng)賽,源碼補(bǔ)丁難檢測(cè),但并非不可能。([GitHub][1])
二,瀏覽器指紋不是唯因素。
真實(shí)業(yè)務(wù)風(fēng)控還會(huì)看:
IP 信譽(yù);
賬號(hào)歷史;
訪問(wèn)頻率;
行為路徑;
業(yè)務(wù)數(shù)據(jù);
設(shè)備關(guān)系;
登錄狀態(tài);
奧力斯 pvc管道管件膠批發(fā) 聯(lián)系人:王經(jīng)理 手機(jī):15226765735(微信同號(hào)) 地址:河北省任丘市北辛莊鄉(xiāng)南代河工業(yè)區(qū)
支付與交易風(fēng)險(xiǎn);
異常請(qǐng)求模式。
瀏覽器環(huán)境再像真人,如果業(yè)務(wù)行為不理,依然會(huì)被識(shí)別。
三,源碼瀏覽器帶來(lái)供應(yīng)鏈風(fēng)險(xiǎn)。
這類項(xiàng)目通常會(huì)下載自定義瀏覽器二進(jìn)制。
工程團(tuán)隊(duì)須關(guān)心:
二進(jìn)制來(lái)源是否可信;
是否有簽名和校驗(yàn);
是否可審計(jì);
是否允許進(jìn)入企業(yè)內(nèi)網(wǎng);
是否符公司安全規(guī)范。
項(xiàng)目資料中提到其二進(jìn)制下載會(huì)進(jìn)行 SHA-256 校驗(yàn),并提供 GPG、Sigstore、Docker 鏡像簽名等供應(yīng)鏈驗(yàn)證式。([GitHub][1])
四,要注意法規(guī)邊界。
自動(dòng)化瀏覽器可以用于測(cè)試、監(jiān)控、兼容驗(yàn)證、數(shù)據(jù)質(zhì)量檢查、內(nèi)部系統(tǒng)巡檢、AI Agent 實(shí)驗(yàn)等正當(dāng)場(chǎng)景。
但未經(jīng)授權(quán)的大規(guī)模采集、繞過(guò)訪問(wèn)控制、撞庫(kù)、批量注冊(cè)、薅羊毛、規(guī)避平臺(tái)風(fēng)控等行為,都不應(yīng)該被技術(shù)文章鼓勵(lì)。
所以建議把它放在“自動(dòng)化工程與風(fēng)控測(cè)試”的語(yǔ)境里討論,而不是放在“繞過(guò)檢測(cè)”的語(yǔ)境里傳播。
8. 個(gè)值得關(guān)注的變化:自動(dòng)化框架正在從 API 競(jìng)爭(zhēng)走向環(huán)境競(jìng)爭(zhēng)
過(guò)去瀏覽器自動(dòng)化框架的競(jìng)爭(zhēng),主要在 API 層:
誰(shuí)的定位便;
誰(shuí)的等待機(jī)制穩(wěn)定;
誰(shuí)的跨瀏覽器支持好;
誰(shuí)的調(diào)試體驗(yàn)強(qiáng);
誰(shuí)的錄制回放完善。
Playwright 之所以快速流行,就是因?yàn)樗谶@些面做得足夠工程化。
但 CloakBrowser 代表的是另個(gè)向:
未來(lái)的瀏覽器自動(dòng)化競(jìng)爭(zhēng),不只是誰(shuí)的 API 好用,而是誰(shuí)能提供真實(shí)、致、可靠的執(zhí)行環(huán)境。
這對(duì)測(cè)試開發(fā)來(lái)說(shuō)是個(gè)很重要的信號(hào)。
因?yàn)樽詣?dòng)化測(cè)試的穩(wěn)定,很可能不再只是腳本穩(wěn)定,而是:
瀏覽器穩(wěn)定;
環(huán)境致;
指紋可信度;
網(wǎng)絡(luò)鏈路致;
用戶畫像連續(xù);
行為模擬自然度;
風(fēng)控系統(tǒng)兼容。
換句話說(shuō),自動(dòng)化測(cè)試正在從“操作頁(yè)面”變成“模擬真實(shí)用戶環(huán)境”。
9. 對(duì)測(cè)試開發(fā)有哪些啟發(fā)?
啟發(fā):不要只把 UI 自動(dòng)化理解成元素點(diǎn)擊
頁(yè)面自動(dòng)化只是表層。
真正復(fù)雜的系統(tǒng)里,自動(dòng)化腳本會(huì)和瀏覽器內(nèi)核、網(wǎng)絡(luò)協(xié)議、風(fēng)控策略、用戶畫像、行為分析共同作用。
如果只會(huì)寫點(diǎn)擊和斷言,很難處理真實(shí)業(yè)務(wù)里的復(fù)雜問(wèn)題。
啟發(fā)二:瀏覽器指紋可以成為新的測(cè)試知識(shí)點(diǎn)
未來(lái)測(cè)試開發(fā)需要理解:
Canvas 指紋;
WebGL 指紋;
TLS 指紋;
WebRTC 泄露;
CDP 自動(dòng)化信號(hào);
headless 與 headed 差異;
字體與 GPU 環(huán)境差異;
代理 IP 與語(yǔ)言時(shí)區(qū)致。
這些知識(shí)以前偏安全、爬蟲、風(fēng)控,現(xiàn)在正在進(jìn)入測(cè)試工程視野。
啟發(fā)三:AI Agent 測(cè)試會(huì)依賴真實(shí)瀏覽器環(huán)境
當(dāng) Agent 開始操作網(wǎng)頁(yè)、后臺(tái)、SaaS 系統(tǒng)、企業(yè)內(nèi)部平臺(tái)時(shí),僅僅 mock 頁(yè)面是不夠的。
我們需要測(cè)試:
Agent 是否能穩(wěn)定理解頁(yè)面;
是否能在動(dòng)態(tài)頁(yè)面中正確操作;
是否會(huì)被風(fēng)控誤判;
是否能處理驗(yàn)證碼、登錄態(tài)、異常彈窗;
是否能在真實(shí)瀏覽器環(huán)境中完成任務(wù)閉環(huán)。
瀏覽器環(huán)境工程,會(huì)成為 Agent 測(cè)試的重要基礎(chǔ)設(shè)施。
啟發(fā)四:企業(yè)內(nèi)部系統(tǒng)也需要“反誤傷測(cè)試”
很多企業(yè)只關(guān)注“能不能攔住機(jī)器人”,但忽略了另個(gè)問(wèn)題:
會(huì)不會(huì)誤傷正常用戶?
會(huì)不會(huì)誤傷自動(dòng)化巡檢?
會(huì)不會(huì)誤傷內(nèi)部測(cè)試任務(wù)?
會(huì)不會(huì)誤傷海外用戶、代理網(wǎng)絡(luò)、特殊設(shè)備用戶?
這類問(wèn)題如果沒有自動(dòng)化測(cè)試體系,很難穩(wěn)定回歸。
10. 寫在后
CloakBrowser 受到關(guān)注,不只是因?yàn)樗Q通過(guò)了多項(xiàng)檢測(cè),也不只是因?yàn)樗芴鎿Q Playwright。
重要的是,它暴露了個(gè)趨勢(shì):
瀏覽器自動(dòng)化正在進(jìn)入的技術(shù)層。
過(guò)去我們討論自動(dòng)化,多討論腳本、定位、斷言、并發(fā)、報(bào)告。
現(xiàn)在我們須討論瀏覽器內(nèi)核、指紋致、網(wǎng)絡(luò)時(shí)序、行為模型、環(huán)境畫像、供應(yīng)鏈安全和風(fēng)控測(cè)試。
對(duì)測(cè)試開發(fā)來(lái)說(shuō),這不是簡(jiǎn)單多學(xué)個(gè)工具,而是要意識(shí)到:
未來(lái)的自動(dòng)化能力,不再只是“我能不能點(diǎn)到按鈕”。
而是:
我能不能構(gòu)建個(gè)足夠真實(shí)、足夠穩(wěn)定、足夠可觀測(cè)、足夠規(guī)的用戶執(zhí)行環(huán)境。
這才是 CloakBrowser 這類項(xiàng)目真正值得研究的地。
本文部分內(nèi)容參考了霍格沃茲測(cè)試開發(fā)學(xué)社整理的相關(guān)技術(shù)資料,主要涉及軟件測(cè)試、自動(dòng)化測(cè)試、測(cè)試開發(fā)及 AI 測(cè)試等內(nèi)容,側(cè)重測(cè)試實(shí)踐、工具應(yīng)用與工程經(jīng)驗(yàn)整理。
相關(guān)詞條:鐵皮保溫施工 隔熱條設(shè)備 錨索 離心玻璃棉 萬(wàn)能膠生產(chǎn)廠家1.本網(wǎng)站以及本平臺(tái)支持關(guān)于《新廣告法》實(shí)施的“極限詞“用語(yǔ)屬“違詞”的規(guī)定,并在網(wǎng)站的各個(gè)欄目、產(chǎn)品主圖、詳情頁(yè)等描述中規(guī)避“違禁詞”。
2.本店歡迎所有用戶指出有“違禁詞”“廣告法”出現(xiàn)的地方,并積極配合修改。
3.凡用戶訪問(wèn)本網(wǎng)頁(yè),均表示默認(rèn)詳情頁(yè)的描述貴州萬(wàn)能膠廠家,不支持任何以極限化“違禁詞”“廣告法”為借口理由投訴違反《新廣告法》,以此來(lái)變相勒索商家索要賠償的違法惡意行為。