Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 97在线精品视频,看全黄大色黄大片老人做,久久久精品一区二区三区

          整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          05,JavaScript腳本中cookie

          ookie:一般是被瀏覽器以數(shù)據(jù)庫的形式存儲在電腦硬盤中,供該瀏覽器進行讀、寫操作。


          (1),添加cookie

          	function addCookie()
          	{
          		// 添加cookie
          		document.cookie= "username=xiobill; age=26";
          	 
          		debugger;
          		// 給cookie設(shè)置終止時間
          		var date = new Date();
          		var expireDays=10;
          		date.setTime(date.getTime() + expireDays*60*1000);
          		document.cookie="username=xiobill; age=26; expires="+date.toUTCString();
          	 
          	}

          (2),獲取cookie

          	// 獲取cookie
          	function getCookie(name) {
          		debugger;
          		var strCookie = document.cookie;
          		var arrCookie = strCookie.split(";");
          		for(var cookieIdx in arrCookie) {
          			var cookieItm = arrCookie[cookieIdx];
          			// 可啊
          			var cookieKvalue = cookieItm.split("=");
          			if(cookieKvalue[0] == name) {
          				return cookieKvalue[1];
          			}
          		}
          		return "";
          		
          	}

          (3),修改cookie只需重新賦值 document.cookie="username=xblbill;",刪除cookie,將cookie有效期設(shè)置為過去時間

          頁端抓數(shù)據(jù)免不了要跟JavaScript打交道,尤其是JS代碼有混淆,對cookie做了手腳。找到cookie生成的地方要費一點時間。

          那天碰到這樣一個網(wǎng)頁,用瀏覽器打開很正常。然而用requests下載URL卻得到“521”的狀態(tài)碼,返回的內(nèi)容是一串壓縮混淆的JavaScript代碼。就是下面這個樣子:

          返回的是JavaScript就好說了。肯定是瀏覽器運行這段JavaScript后,再次加載就可以得到真實網(wǎng)頁內(nèi)容了。

          那么問題來了,這段js代碼都做了些什么呢?

          我們先觀察一下瀏覽器的加載過程。因為你已經(jīng)成功打開了這個網(wǎng)頁,瀏覽器已經(jīng)記住了某些關(guān)鍵的cookies,所以你要先把cookies刪除。


          如何刪除Chrome瀏覽器記錄的某個網(wǎng)站的cookies呢?


          打開Chrome的settings,按這個路徑尋找cookies刪除的地方:Advanced -> Content Settings -> Cookies -> See all cookies and site data 。

          然后在右上角的搜索欄搜索 就可以看到這個網(wǎng)站對應(yīng)的cookies,把它們都刪除即可。

          打開瀏覽器的Network,選中“Preserve log”,記住加載的歷史,然后用瀏覽器重新打開這個網(wǎng)址:

          可以看到Network記錄的加載過程:

          觀察發(fā)現(xiàn),第一次返回了521,然后停頓片刻(實際上是1.5秒,后面js代碼可以看到)再次加載該網(wǎng)頁,可以得到正確的網(wǎng)頁內(nèi)容。


          對比兩次請求的cookies,可以發(fā)現(xiàn)第二次多了些cookies。這些cookies有可能就是521時返回的js寫進去的。那么我們就來研究一下這段js代碼。


          首先,我們需要一個js格式化的工具來幫助我們研究這段js代碼。工具很多,我們使用 https://beautifier.io/ 。把代碼copy到beautifier的網(wǎng)頁格式化一下:

          先來理解一下這段代碼,1-16行沒什么特別的。16行要eval()一段js代碼字符串,這個很關(guān)鍵,看看它是什么。把 eval 改成 console.log,然后按F12調(diào)出Chrome的開發(fā)者工具,把全部js代碼copy到 Chrome的Console運行一下:


          這時候,我們可以看到控制臺輸出了一段js的代碼,把這段代碼再copy到beautifier網(wǎng)頁格式化一下:

          第4行可以看到,是給 document.cookie 賦值了,也就是給瀏覽器寫入的一個名為 __jsl_clearance 的cookie。這個cookie的生成跟第4行最后那個 function 有關(guān),看代碼的樣子,又是一段加密算法。

          我們可以讀懂這個function的實現(xiàn)用Python實現(xiàn)算法,但實際上這段代碼太難讀懂了。我們可以借助Python的 ExecJS、PyV8這樣的模塊來運行這段js同樣也可以得到cookie的值。

          有了cookie的值,我們在Python里面使用requests.Session 就可以來加載這個網(wǎng)頁了。在Python中得到那個cookies并正確加載網(wǎng)頁內(nèi)容,是對你Python能力的考驗,如果遇到什么問題可以留言討論討論。

          // 創(chuàng)建一個canvas元素
          var canvas = document.createElement('canvas');
          var ctx = canvas.getContext('2d');
          
          // 設(shè)置canvas尺寸
          canvas.width = 200;
          canvas.height = 50;
          
          // 繪制文本到canvas
          ctx.textBaseline = "alphabetic";
          ctx.fillStyle = "#f60";
          ctx.fillRect(125, 1, 62, 20);
          ctx.fillStyle = "#069";
          ctx.font = "11pt no-real-font-123";
          ctx.fillText("Cwm fjordbank glyphs vext quiz, \ud83d\ude03", 2, 15);
          
          // 獲取canvas的數(shù)據(jù)URL
          var dataURL = canvas.toDataURL();
          
          // 輸出獲取到的Canvas指紋信息
          console.log('Canvas指紋信息: ' + dataURL);
          

          覽器的Canvas指紋技術(shù)是一種在線跟蹤技術(shù),它依賴于HTML5的Canvas API來創(chuàng)建一個獨特的標(biāo)識符,用于識別和跟蹤用戶。原理是這樣的當(dāng)你的瀏覽器訪問一個網(wǎng)站時,網(wǎng)站可能會使用Canvas API來繪制一個隱藏的圖形。這個圖形的細(xì)節(jié)(例如,顏色、線條、陰影等)可能會受到你的瀏覽器、操作系統(tǒng)、硬件(特別是圖形處理器)等因素的影響。因此,不同的用戶或不同的設(shè)備生成的圖形可能會有細(xì)微的差別。

          網(wǎng)站可以讀取這個圖形的像素數(shù)據(jù),將其轉(zhuǎn)換為一個字符串(通常是一個哈希值),作為你的"Canvas指紋"。由于這個指紋是由你的設(shè)備和軟件設(shè)置的細(xì)微差別生成的,因此它具有很高的唯一性,可以用來識別和跟蹤你。并且這個哈希值和COOKIE存儲在客戶端一類的TOKEN還不一樣,具有很高的唯一性,同一個品牌同一規(guī)格的主機也是會產(chǎn)生細(xì)微的區(qū)別的。大家可以動手試一試這一段代碼。


          主站蜘蛛池模板: 日本免费一区二区三区| 国产在线一区观看| 国产品无码一区二区三区在线蜜桃| 日韩精品国产一区| 精品一区二区三区无码免费视频| 在线免费视频一区二区| 无码少妇一区二区三区浪潮AV| 中文无码AV一区二区三区| 狠狠做深爱婷婷久久综合一区| 人妻久久久一区二区三区| 中文字幕一区二区在线播放| 一区二区三区免费视频播放器| 成人国产精品一区二区网站公司| 精品爆乳一区二区三区无码av| 久久久久久免费一区二区三区| 99精品久久精品一区二区| aⅴ一区二区三区无卡无码| 天天看高清无码一区二区三区| 日本一区二区三区日本免费| 日韩精品国产一区| 国产丝袜一区二区三区在线观看| 韩国精品一区二区三区无码视频| 无码夜色一区二区三区| 国产精品无码一区二区在线观 | 一本岛一区在线观看不卡| 国产在线一区视频| 国产精品无码不卡一区二区三区| 日本一区二区在线不卡| 无码国产精品一区二区高潮| 国产在线一区二区三区av| 国产伦精品一区二区三区免费迷| 国产中文字幕一区| 日本一区二区三区中文字幕| 久久AAAA片一区二区| 国精产品一区一区三区| 亚洲av无码一区二区三区天堂古代| 无码国产精品一区二区免费式直播| 人妻少妇精品视频三区二区一区| 日韩免费无码一区二区视频| 一区二区三区内射美女毛片| 岛国无码av不卡一区二区|