C#爬蟲與反爬蟲–字體加密篇

       爬蟲和反爬蟲是一條很長的路,遇到過js加密,flash加密、重點信息生成圖片、css圖片定位、請求頭…..等手段;今天我們來聊一聊字體;
那是一個偶然我遇到了這個網站,把價格信息全加密了;瀏覽器展示:

查看源碼后是這樣:

當時突然恍然大悟,以為不就是把價格換成 &#xxxxx: .. 字符實體了嘛 我轉下就行了;(注:大家可能對轉義字符(實體名稱)比較熟悉 比如雙引號對應" ,字符實體呢就 &#開頭 ; 結尾 中間那些是ASCII碼 ;我這個示例中又有點不一樣的是 以x開頭 表明是16進制的 ASCII碼;詳解:http://www.w3school.com.cn/html/html_entities.asp 和
http://www.w3school.com.cn/tags/html_ref_ascii.asp) ;於是開始了轉碼。。。。

 這是什麼鬼,難道我的判斷有誤。當我打開瀏覽器調試界面發現

也是亂碼,我在界面上copy金額黏貼到記事本看看

也是亂碼說明上面的推斷是沒有錯的,他應該就是在显示上做了什麼處理;
       在找找發現一段鬼鬼祟祟的代碼;給price設置了一個叫zhongshugui的字體,但是好好的字體為啥要用base64 不用 http加載,http加載貌似可以用瀏覽器緩存的不是更好,base64 的話我每次瀏覽一個網頁不都是要重新加載一下;莫非他不想緩存就是每次加載都不一樣,經各種刷新后發現確實每次都生成不同文件;

既然感覺字體有問題 那我們就解析出來看看是啥,

這些0~9正好和界面上的html字符實體編碼一一對應;所以這個加密方式就是 html寫對應的HTML實體並與字體里的ASCII對應,自定義字體文件 以base64的方式內嵌到html里 ;每個頁面隨機生成不同的字體(就是字體里的ASCII);上面那個是為了寫帖子自己仿造原網站做的例子;
C#解析字體的類在System.Windows.Media命名空間下Fonts類:
https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.media.fonts?view=netframework-4.8

   好睏。午休去了;

【精選推薦文章】

智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

想知道網站建置、網站改版該如何進行嗎?將由專業工程師為您規劃客製化網頁設計及後台網頁設計

帶您來看台北網站建置台北網頁設計,各種案例分享

廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

您可能也會喜歡…