2020/05/13 14:50更新
loadblogtalk: (page) => ,
loadblogsearch: (keyword) => ,
loadfollowers: (page) =>
return forwardxmljsonp(url, parsefollowers);
},
這三個介面是走的php後端的api,理由是能自洽的,因為涉及到不同子域了,存在跨站請求,所以需要第三方後端來進行處理
2020/05/12 22:14
首先說好本文只是我個人的猜測,如果有不對的地方請及時指正
前些天朋友介紹,看到乙個主題,主題的思路很棒,具體怎麼棒不表,只是後來看了看原始碼,發現了一些秘密的東西。
原始碼位址
首先是這個主題會向主題作者的php伺服器傳送請求
這裡我們可以看到是返回乙個callback,這一般是解決跨域所採用的jsonp技術
那麼jsonp的具體原理是啥?
jsonp原理
因為瀏覽器跨域機制的存在,如果在對方介面伺服器上面並沒有做cors相關的操作,那麼是請求不到ajax介面資料的,jsonp技術應運而生
瀏覽器是可以引入外域的js的,並且外域上不需要做任何跨域相關的設定,引入外域js後就可以呼叫該js裡面的函式,所以在介面上傳遞乙個callback,比如
然後那邊返回乙個js,js的內容為
ttt()
那麼呼叫ttt函式即可獲得這個json資料
是不是到現在為止你還是覺得,好像沒什麼問題啊,他返回一下好像也沒問題啊?
但是試想乙個,這個callback他是可以在後端任意替換的,比如給你加個js獲取你的一些資訊,甚至還可以控制你的瀏覽器一些行為,比如幫他點選乙個啥啥啥,可以了解一下beef
我看了這個主題占用cpu和記憶體比較低,所以花了幾分鐘時間翻了下原始碼,發現了一些奇怪的東西
我在找上面所說的php請求的時候發現了這個
然後跟進去
繼續跟
有一串加密的東西
/**
* * base64 encode / decode
* * **/
// private property
let _keystr = ""
_keystr += "abyz0r4wxs";
// public method for encoding
let encode = function (input) else if (isnan(chr3))
output = output +
_keystr.charat(enc1) + _keystr.charat(enc2) +
_keystr.charat(enc3) + _keystr.charat(enc4);
} // whend
return output;
} // end function encode
_keystr += "klmcdetutuvwx12nopqk";
// public method for decoding
let decode = function (input)
if (enc4 != 64)
} // whend
output = _utf8_decode(output);
return output;
} // end function decode
_keystr += "lmnopqyzabcdef";
// private method for utf-8 encoding
let _utf8_encode = function (string) else if ((c > 127) && (c < 2048)) else
} // next n
return utftext;
} // end function _utf8_encode
_keystr += "35rsjfghivgh";
// private method for utf-8 decoding
let _utf8_decode = function (utftext) else if ((c > 191) && (c < 224)) else
} // whend
return string;
} // end function _utf8_decode
_keystr += "ij6789+/=";
export default ,
o: (ciphertext) => ,
}
然後在初始化的時候,也就是你每次進**的時候
每次進**呼叫這個函式 initbaiducount()
並且加了個路由守衛呼叫 pushbaiducount()
可能有的人不理解路由守衛是什麼,路由守衛就是乙個hook鉤子,在你每次進入或離開路由,或者說該**的頁面時呼叫,比如這裡是進入乙個新路由的時候就呼叫一下,跟進去看看
我說下我覺得可疑的點
我姑且認為是為了給自己的部落格進行統計,但是這其中為什麼大費周章去加密解密,這個我不太理解
還有的是這個加密的js去掉了字尾js,這樣github就沒法檢索分析**了,不把**down下來應該是只能硬找
我看了下,其實並沒有用到自建php伺服器上的東西,最開始以為是反代轉化為介面,但是我看了下請求,全都是只有callback,返回的乙個字串,我實在想不到是有什麼必要進行這個操作,目前看起來是沒有價值的
所以問題來了:
這個php伺服器主要用處是什麼?目前的callback看起來是毫無意義的,還是真像我所想的,方便以後做一些事情?
部落格園主題(藍色)
部落格標題和副標題 blogtitle h1 blogtitle h2 markdown post post h1 post h2 post h3 post h4 post h5 post h6 post hr post p,post blockquote,post ul,post ol,post ...
部落格園主題美化
2 登入後,在賬戶設定裡可以進行頭像,密碼,手機號,郵箱等設定。3 剛登入的賬號需要申請開通部落格 申請理由,隨便填寫,積極向上 4 填寫完成後,等待的審核就行 一般5分鐘內就可以通過 5 進入設定,申請js許可權,部落格 請選擇 memory 以下 都是基於此主題 js許可權申請理由例子 尊敬的管...
我的部落格園主題
首先,感謝gshang 這位大佬。我的主題原型就是他做的bili2.0 主題,個人很喜歡。在這個主題的基礎上,我進行了一些修改,得到了現在的主題。我的主題 並不打算發不出來,主要有以下兩個原因。我是根據個人喜好進行的修改,它不一定可以滿足你。未得到原作者允許,將基於bili2.0修改的主題共享出來不...