部落格園某開源主題暗藏私貨?

2022-02-23 17:56:19 字數 3327 閱讀 7694

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修改的主題共享出來不...