成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

瀏覽器指紋如何識別來自網絡爬蟲的流量

安全 數據安全
瀏覽器指紋是一種先使用JavaScript腳本語言來識別、探測瀏覽器本身標識和一些計算機硬件信息,再使用哈希函數創建哈希,然后對哈希值進行比對,進而辨別訪問是否來自同一用戶的技術。本文將為大家介紹識別網絡爬蟲流量和使用瀏覽器指紋技術的必要性,以及瀏覽器指紋如何識別網絡爬蟲。

一、識別網絡爬蟲流量的必要性

在互聯網上識別用戶身份和獲取用戶資料是一種尋常的行為,為特定用戶推送和定制不同內容也較為普遍。但事實上,在互聯網存在海量的虛假流量,它們通常被用來大批量、分布式地采集網頁信息,進行模擬登陸,模仿用戶行為進而規避被封禁的風險。虛假流量的主體是網絡爬蟲,網絡爬蟲(Web Crawlers)是機器人的一種,用于將公開化的網絡數據的搜集自動化[1]。雖然有些爬蟲會在被爬取網站的同意下搜集信息,但是大多數網絡爬蟲并不遵循網絡條款。

目前應用最廣的網絡條款是robots.txt,其目的在于告訴爬蟲機器人網站的哪些頁面可以爬取,哪些頁面不允許被爬取,該條款只用于聲明,而不能強制迫使網絡爬蟲遵循其規定。如下圖是百度的部分robots.txt:

圖片圖片

圖1 百度部分robots.txt展示

二、使用瀏覽器指紋識別網絡爬蟲的必要性

目前網絡上針對網絡爬蟲有多種反制措施,比如網絡爬蟲頭部信息檢測、JavaScript加密參數、各種驗證碼識別、網頁代碼混淆等。

1.網絡爬蟲頭部信息檢測

這種措施主要是針對爬蟲程序啟動時沒有完全模擬瀏覽器頭部信息的情況。比如打開Edge瀏覽器的開發者工具,在網絡面板刷新頁面后可以抓到網絡數據包,打開訪問百度頁面的數據包,可以看到大量請求標頭:

圖片圖片

圖2 數據包請求標頭

其中最為常用的便是Cookie,在Cookie中存在用戶的唯一標志符,為了防止爬蟲復用該信息,通常里邊會存在一些擁有時效性的時間戳。這種方法因有可能侵犯隱私而受到一些抵制。此外,User-Agent也被用來防范網絡爬蟲,因為默認的網絡爬蟲對于這一頭部信息是缺失的,使用正常瀏覽器訪問頁面會自帶瀏覽器的信息,而且該信息還被用來區分移動端和瀏覽器端,面對不同瀏覽終端,會給用戶返回不同的頁面效果。但是這種反爬蟲措施的效果較弱,只要爬蟲將信息復制完整,在一定時間內依然能夠發起大量的訪問請求。

2.JavaScript加密參數

JavaScript加密參數指的是在用戶訪問網站的時候,頭部會攜帶一些由網站的JavaScript代碼計算生成的值,該值每次計算結果都不盡相同,其主要應用常用的前端加密庫CryptoJS進行加密計算。

這種反爬蟲措施雖然提高了門檻,但是對于會閱讀JavaScript代碼的程序員來說,依然沒有任何難度。主要原因在于網站的前端代碼可以直接被用戶獲取,雖然可以有多種禁止用戶單擊右鍵或者打開開發者工具的措施,但是對于有編程基礎的人來說形同虛設。

針對這種反爬蟲措施,用戶只需將網站的JavaScript加密參數相關代碼通過閱讀進行復現,或者直接拷貝下來進行執行,再與自己編寫的爬蟲代碼進行耦合,依然能夠實現對網站的訪問請求。

3.各種驗證碼檢測

目前驗證碼檢測已經十分廣泛,從早期的英文數字驗證碼,到現在的漢字點選驗證碼、滑塊驗證碼等,有眾多的公司專門提供對應的服務,如網易易盾、極驗、頂象等,如下圖所示:

圖片圖片

圖3 文字點選驗證碼

但是隨著人工智能技術的發展,這些驗證碼也逐漸拜倒在爬蟲技術之下。在github上已經存在一些成熟的驗證碼識別庫用于通過驗證碼檢測,比如dddocr,已經可以直接調包識別英數驗證碼、滑塊驗證碼、文字點選驗證碼等。即便是沒有對應的識別庫,也可以通過自己搭建深度學習環境來訓練驗證碼模型。

4.網頁代碼混淆

網頁代碼混淆是用來拔高JavaScript參數破解門檻的,包括驗證碼識別在內,在提交參數的時候,都可以通過JavaScript腳本進行參數加密。網頁的前端代碼是用戶可以直接獲取的,沒有秘密可言。網頁代碼混淆便是使得代碼不可讀,進而提高參數破解難度。下圖是網易易盾的網頁混淆代碼:

圖片圖片

圖4 網易易盾混淆頁面

網頁代碼混淆通常是通過Babel庫來實現的,因此也存在還原的方法,利用Bbael庫AST抽象語法樹進行還原目前已是成熟的技術。雖然做不到對復雜混淆代碼的完全還原,但也足以攻克加密參數了。

上述反爬蟲措施都存在或大或小的漏洞,爬蟲總是可以通過這樣或者那樣的方法來模擬用戶行為,進而發起網絡請求。而接下來本文介紹的瀏覽器指紋技術則是很好的解決方案。

三、瀏覽器指紋技術概要

瀏覽器指紋是關于給定的瀏覽器、設備、操作系統和用戶的環境和位置信息的一組信息。[2]這些信息可以直接通過JavaScript搜集并發送給網站服務器。網絡爬蟲無法避開這些信息的發送,如果爬蟲直接復制了瀏覽器的相關指紋參數,那么網站主機就可以根據指紋來確定流量是否來自同一用戶,進一步根據發送頻率來限制流量。而且,瀏覽器指紋也可以獲取跨瀏覽器指紋,主要是操作系統信息和一些圖形卡信息,因此同一臺主機發起的請求完全可以被識別為同一用戶。而這種技術的好處在于無法感知,因為這些信息可以直接通過編程語言的接口來獲取,不會留下任何痕跡。

一些常用的指紋主要包括如下幾個方面:

  • 設備的功能(包括設備內存、顏色深度、邏輯核心、觸控支持、屏幕參數等);
  • 操作系統的參數(操作系統版本、支持的字體列表、時區等);
  • 瀏覽器的特征(瀏覽器頭部版本、插件列表、屏幕分辨率、數據庫信息等);
  • 圖形卡信息(canvas畫布、WebGL渲染器等)。

獲取上述信息之后,通常不會把這些信息直接發送出去,而是對其進行哈希編碼。哈希是指從一個可變大小的輸入中獲得一個固定長度的輸出的過程。相同的輸入會有相同的輸出,而且哈希函數擁有不錯的抗碰撞能力,即兩個不同的輸入很難獲得相同的輸出結果。利用這一特性,可以很輕易地辨別較長的瀏覽器指紋是否是來自同一用戶。

如果要辨別流量是否來自于同一瀏覽器,只需要把瀏覽器對應的信息搜集后哈希,然后放置于cookie或者一個單獨的參數中,發送給網站主機即可。這樣一來,網站面對來自同一指紋的頻繁請求,可以及時進行流量攔截。

如果爬蟲程序偽造了不同的瀏覽器頭部信息,網站也可以進一步搜集圖形卡信息和操作系統參數,因為同一臺電腦的這些信息是相同的,這樣即便開啟多個瀏覽器或者偽造不同的瀏覽器頭部也可以輕易被識別出來。

四、瀏覽器指紋技術的缺陷

瀏覽器指紋技術也存在限制,主要在于用戶的設備是可以更新和升級的,一旦進行更新和升級,指紋將發生很大變化。而且如果爬蟲程序識別到了瀏覽器指紋識別技術,也可以通過編寫JavaScript,完全偽造一套指紋環境,并且不斷隨機其中的參數,從而達到生成新指紋的效果。這樣一來,網站針對同一指紋的請求頻率來識別的方案將會失效。

但是不論如何,瀏覽器指紋依然是目前抵制網絡爬蟲最堅實的方案。因為瀏覽器指紋信息是極其繁雜的,網站的瀏覽器指紋檢測方案可以不斷改進,并搭配JavaScript參數加密和混淆,進而可以極大增加破解難度。如下圖所示的瀏覽器本身的信息:

圖片圖片

圖5 瀏覽器信息

這些信息都直接包含在瀏覽器的window當中。瀏覽器指紋技術不僅可以檢測各類信息,也可以偵測用戶請求網站的時候,是否存在這些函數方法。這樣一來,除非爬蟲程序完全將瀏覽器的接口自己實現,進行繁重的補環境操作,否則也沒有什么爬取數據的捷徑可行。

參考文獻:

[1] Vastel, A., Rudametkin, W., Rouvoy, R., Blanc, X. (2020, February). FP-Crawlers: Studying the Resilience of Browser Fingerprinting to Block Crawlers. In NDSS Workshop on Measurements, Attacks, and Defenses for the Web (MADWeb’20).

[2] Browser Fingerprint Coding Methods Increasing the Effectiveness of User Identification in the Web Traffic [J] . Marcin Gabryel,Konrad Grzanek,Yoichi Hayashi.  Journal of Artificial Intelligence and Soft Computing Research . 2020 (4)

責任編輯:武曉燕 來源: 中國保密協會科學技術分會
相關推薦

2017-05-02 09:25:13

瀏覽器指紋追蹤虛擬化

2020-08-16 08:51:22

WEB安全網絡攻擊網絡欺騙

2011-08-29 10:11:30

Firefox 6Web瀏覽器

2019-07-16 07:15:42

瀏覽器網絡威脅網絡安全

2019-04-29 09:46:23

瀏覽器網絡威脅網絡攻擊

2019-07-31 16:44:40

Python網絡爬蟲瀏覽器

2010-04-05 21:57:14

Netscape瀏覽器

2024-04-30 11:21:04

瀏覽器指紋瀏覽器

2012-10-29 16:22:18

遨游瀏覽器

2012-03-20 11:07:08

2013-11-18 14:42:53

瀏覽器渲染

2012-03-20 11:41:18

海豚瀏覽器

2012-03-20 11:31:58

移動瀏覽器

2012-03-19 17:25:22

2009-12-09 15:52:27

Chrome網絡瀏覽器

2009-04-03 09:09:21

瀏覽器網絡辦公室

2013-05-15 10:00:09

網絡瀏覽器瀏覽器

2013-07-25 14:17:17

2013-01-14 10:58:51

傲游云瀏覽器

2023-08-03 09:10:37

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一区二区三区视频在线 | 亚洲一区视频在线 | 一区二区在线 | 超碰在线国产 | 国产精品久久一区二区三区 | 久久久精品 | 波多野结衣亚洲 | 成人免费在线观看视频 | 精品久久国产 | 国产视频精品在线 | 国产精品久久久久一区二区三区 | 欧美xxxx性 | 在线日韩精品视频 | www精品美女久久久tv | 99re在线观看| 午夜视频一区二区三区 | 亚洲乱码一区二区三区在线观看 | 成人在线视频免费播放 | 精品国产乱码久久久久久蜜臀 | hsck成人网| 欧美一区二区三区精品 | 久久与欧美 | 国产精品揄拍一区二区 | 成人网av| 国产亚洲二区 | 日韩精品一区二区在线 | jlzzxxxx18hd护士| 国产精品高 | 久久亚洲一区二区 | 成人免费区一区二区三区 | 国产精品视频在线播放 | 国产一级片 | 91.色| 国产精品美女久久久久久久网站 | 久久久免费少妇高潮毛片 | 久久亚洲综合 | 国产午夜在线观看 | 精品一二区 | 日本免费网| 国产精品久久久久久福利一牛影视 | 欧美日韩综合视频 |