01什么是 Cloudflare 驗(yàn)證碼
Cloudflare 提供網(wǎng)絡(luò)工具,并提供一套全面的安全功能,以保護(hù)網(wǎng)站免受各種在線威脅。Cloudflare 驗(yàn)證碼是一種用于區(qū)分人類用戶和自動(dòng)化機(jī)器人的功能。它是 Cloudflare 安全服務(wù)的重要組成部分,旨在防御網(wǎng)站免受自動(dòng)化攻擊和濫用。
Cloudflare 驗(yàn)證碼的獨(dú)特功能
集成的安全解決方案:
Cloudflare 的驗(yàn)證碼服務(wù)通常作為其整體安全解決方案的一部分提供,包括DDoS 保護(hù)、Web 應(yīng)用防火墻 (WAF)、內(nèi)容分發(fā)網(wǎng)絡(luò) (CDN)等。這使得網(wǎng)站可以從單個(gè)平臺(tái)獲得全面的安全保護(hù)。
智能流量管理:
Cloudflare 利用其全球網(wǎng)絡(luò)和智能流量管理技術(shù),通過在檢測(cè)到異常流量或潛在威脅時(shí)動(dòng)態(tài)觸發(fā)驗(yàn)證碼,更有效地保護(hù)網(wǎng)站。
無(wú)縫用戶體驗(yàn):
Cloudflare 致力于通過減少對(duì)合法用戶的干擾來(lái)提供無(wú)縫的用戶體驗(yàn)。例如他們的“Turnstile”驗(yàn)證碼旨在通過最少的用戶交互來(lái)驗(yàn)證人類訪問者。
隱私:
Cloudflare 強(qiáng)調(diào)隱私,致力于減少對(duì)用戶數(shù)據(jù)的依賴和收集,并提供更隱私友好的身份驗(yàn)證方法。
02Cloudflare 如何檢測(cè)機(jī)器人
Chromedriver 檢測(cè)
確定瀏覽器是否受自動(dòng)化工具控制。
像 Chromedriver 這樣的自動(dòng)化工具可以通過檢查特定的瀏覽器行為和屬性來(lái)檢測(cè),這些行為和屬性是自動(dòng)化腳本所特有的。例如,某些 JavaScript 變量或?yàn)g覽器屬性可以揭示自動(dòng)化工具的存在。此外,監(jiān)控交互的時(shí)間和模式可以幫助識(shí)別非人類行為。
設(shè)備指紋識(shí)別
如果相同的瀏覽器指紋用于大量訪問,可以識(shí)別為機(jī)器行為。需要使用不同的有效瀏覽器指紋信息來(lái)分配訪問。
設(shè)備指紋識(shí)別涉及收集用戶設(shè)備的各種屬性,如屏幕分辨率、安裝的字體、瀏覽器插件等。通過組合這些屬性,可以為每個(gè)設(shè)備創(chuàng)建一個(gè)唯一標(biāo)識(shí)符(指紋)。在多個(gè)會(huì)話中重復(fù)使用相同的指紋可能表明自動(dòng)化活動(dòng)。為減輕這種情況,需要隨機(jī)化和變化指紋數(shù)據(jù),使其更像人類。
IP 代理檢測(cè)
阻止惡意 IP 位置并限制請(qǐng)求頻率。
IP 代理檢測(cè)涉及識(shí)別和阻止與惡意活動(dòng)或高頻請(qǐng)求相關(guān)的 IP 地址。技術(shù)包括維護(hù)已知壞 IP 地址的黑名單,使用地理位置數(shù)據(jù)阻止可疑區(qū)域,并實(shí)施速率限制以防止單個(gè) IP 地址發(fā)出過多請(qǐng)求。此外,分析 IP 地址的行為模式可以幫助區(qū)分合法用戶和自動(dòng)化機(jī)器人。
瀏覽器真實(shí)性
檢查瀏覽器屬性和請(qǐng)求信息是否異常,例如,頭部中的User-Agent是否由 Python 代碼發(fā)出,以及User-Agent聲明的瀏覽器是否具有相應(yīng)屬性。
JavaScript 挑戰(zhàn)
向用戶發(fā)送 JavaScript 代碼。通常,爬蟲沒有直接渲染 JS 的能力。通過其他手段模擬腳本執(zhí)行有相應(yīng)的檢測(cè)方法。在代碼執(zhí)行期間,收集一系列設(shè)備信息,如 canvas、navigator、插件、Chrome 版本以及一系列物理硬件設(shè)備信息。這些設(shè)備信息被加密并由 Cloudflare 判斷其真實(shí)性。
Cookie
通過檢查cf_clearance的有效期,持續(xù)更新并跟蹤用戶行為是否異常。
TLS 指紋識(shí)別
瀏覽器通常使用 HTTP/2,但編程語(yǔ)言發(fā)出的請(qǐng)求大多默認(rèn)使用 HTTP/1.1。此外,瀏覽器請(qǐng)求的 JA3 信息與編程語(yǔ)言的不同。
TLS 指紋識(shí)別是一種用于識(shí)別和驗(yàn)證 TLS(傳輸層安全)通信的技術(shù)。
TLS 指紋可以通過檢查在 TLS 握手期間使用的密碼套件、協(xié)議版本和加密算法來(lái)確定 TLS 通信的特征。由于每個(gè) TLS 實(shí)現(xiàn)使用不同的密碼套件、協(xié)議版本和加密算法,比較 TLS 指紋可以確定通信是否來(lái)自預(yù)期的源或目標(biāo)。
TLS 指紋識(shí)別可用于檢測(cè)網(wǎng)絡(luò)欺騙、中間人攻擊和間諜活動(dòng)等安全威脅,還可用于識(shí)別和管理設(shè)備和應(yīng)用程序。
03如何繞過并解決 Cloudflare 驗(yàn)證碼
1. CapSolver
有很多方法可以解決 Cloudflare 中的驗(yàn)證碼,但最流行和高效的方法是使用第三方解決服務(wù),你可以使用 CapSolver 來(lái)解決驗(yàn)證碼。以下是基本步驟:
使用 CapSolver 獲取有效令牌,然后通過 TLS 請(qǐng)求庫(kù)正常訪問。
CapSolver 可以通過提供有效的 Cookie 和會(huì)話數(shù)據(jù)來(lái)幫助繞過各種檢測(cè)機(jī)制。一旦獲得這些憑證,就可以使用令牌正常發(fā)送請(qǐng)求。你需要使用 TLS 庫(kù)發(fā)送有效請(qǐng)求。這種方法確保請(qǐng)求看起來(lái)是真實(shí)的,不太可能被阻止或標(biāo)記為可疑。
此外,使用 CapSolver 可以幫助你解決以下問題:
IP 檢測(cè):使用高質(zhì)量代理繞過 IP 阻止和限制。
JavaScript 挑戰(zhàn):像真實(shí)瀏覽器一樣執(zhí)行 JavaScript 代碼,確保正確處理挑戰(zhàn)。
人機(jī)交互:根據(jù)挑戰(zhàn)執(zhí)行相應(yīng)操作,模擬人類行為。
設(shè)備環(huán)境指紋識(shí)別:每次使用干凈有效的瀏覽器環(huán)境信息,通過真實(shí)性檢查。
以下是使用 Python 獲取 Cloudflare Turnstile 解決方案的示例代碼:
2. Puppeteer、Selenium、Playwright
使用瀏覽器自動(dòng)化工具來(lái)驅(qū)動(dòng)網(wǎng)站訪問并檢索數(shù)據(jù),這可以避免復(fù)雜的 JavaScript 檢測(cè);然而,這些工具可能會(huì)被檢測(cè)到是由機(jī)器人控制的。
瀏覽器自動(dòng)化工具如 Puppeteer、Selenium 和 Playwright可以模擬用戶與網(wǎng)站的真實(shí)交互,包括處理 JavaScript 挑戰(zhàn)和渲染動(dòng)態(tài)內(nèi)容。雖然它們可以繞過一些檢測(cè)機(jī)制,但它們通常會(huì)留下可被反機(jī)器人系統(tǒng)識(shí)別的痕跡。通過隨機(jī)化鼠標(biāo)移動(dòng)、按鍵等互動(dòng),可以幫助減輕被檢測(cè)的風(fēng)險(xiǎn)。
3. Undetected Chromedriver
可以繞過一些機(jī)器人控制檢測(cè)。
undetected_chromedriver是一個(gè)修改版的 Chromedriver,包含了避免被反機(jī)器人機(jī)制檢測(cè)的補(bǔ)丁。它可以通過模擬人類行為和修改瀏覽器屬性來(lái)處理各種形式的瀏覽器指紋識(shí)別和其他檢測(cè)技術(shù)。此工具特別適用于網(wǎng)絡(luò)抓取和自動(dòng)化測(cè)試,其中標(biāo)準(zhǔn) Chromedriver 會(huì)被阻止。
4. 使用 Python curl_cffi 解決 TLS 檢測(cè)
獲取有效的 Cookie 后,結(jié)合其他方法重復(fù)訪問網(wǎng)站。關(guān)鍵是要確保 TLS 請(qǐng)求連接有效地被掩蓋,否則數(shù)據(jù)訪問仍會(huì)受到限制。
04結(jié)論
通過遵循這些步驟,你可以使用 Python 和 Selenium 以及 CapSolver 服務(wù)繞過并解決 Cloudflare 驗(yàn)證碼。此方法確保你的自動(dòng)化腳本可以順利運(yùn)行而無(wú)需人工干預(yù)。然而,始終以道德方式使用這些技術(shù),并遵守你所互動(dòng)網(wǎng)站的服務(wù)條款。
-
自動(dòng)化測(cè)試
+關(guān)注
關(guān)注
0文章
252瀏覽量
27622 -
網(wǎng)絡(luò)
+關(guān)注
關(guān)注
14文章
8031瀏覽量
92320 -
python
+關(guān)注
關(guān)注
56文章
4849瀏覽量
89099
發(fā)布評(píng)論請(qǐng)先 登錄
10個(gè)殺手級(jí)的Python自動(dòng)化腳本
【上海】獵頭推薦職位-自動(dòng)化測(cè)試工程師(java/python)
如何在Python中使用Selenium
打碼平臺(tái)是如何高效的破解市面上各家驗(yàn)證碼平臺(tái)的各種形式驗(yàn)證碼的?
多樣變換的手寫驗(yàn)證碼自動(dòng)識(shí)別算法
簡(jiǎn)單地描述了如何用機(jī)器學(xué)習(xí)繞過E-ZPass New York網(wǎng)站的驗(yàn)證碼

以一個(gè)真實(shí)網(wǎng)站的驗(yàn)證碼為例,實(shí)現(xiàn)了基于一下KNN的驗(yàn)證碼識(shí)別
如何使用Python機(jī)器學(xué)習(xí)解決驗(yàn)證碼的資料說明
驗(yàn)證碼層出不窮?試試這個(gè)自動(dòng)跳過驗(yàn)證碼的工具
驗(yàn)證碼太麻煩,自動(dòng)跳過驗(yàn)證碼神器試一試
Selenium2 Python自動(dòng)化測(cè)試實(shí)戰(zhàn)第二版的PDF電子書免費(fèi)下載

云測(cè)試自動(dòng)化中的Python
Selenium在自動(dòng)化中有何用處
分享10個(gè)實(shí)用的Python自動(dòng)化腳本
Java 中驗(yàn)證碼的使用

評(píng)論