寫了個開心網的外掛程式,同時學習了些開心網的一些小技巧

2021-08-23 13:59:52 字數 1428 閱讀 6309

最近做blogbus外掛程式廣場專案,閒暇之餘寫了個開心網的搶車位外掛程式,在開心網的程式架構上學到了一些經驗。

首先我注意到搶車位這個遊戲停留在頁面上資料是會即時更新的,而第一反映是ajax,然而為了控**務器負載,是不應該不停產生請求的,分析後發現果然沒有反覆請求,而是在第一次訪問頁面的時候,把每個車位的盈利上限、下限、單位時間增長值等引數交給客戶端,通過客戶端js進行頁面資料的更新。這樣能有效降低請求數,同時提高使用者體驗。

其二,開心網的很多資料通過json傳輸給客戶端,客戶端js拼裝資料展現給使用者。比如側邊欄、還有很多外掛程式的內容頁。這樣的好處是資料和頁面的耦合度降低,調整顯示效果和實現使用者自定義化更容易,同時一定程度上減輕了伺服器端的處理邏輯,提高開發的效率。在這方面,blogbus很多地方是通過document.write來實現,而不是json資料,雖然簡化了伺服器端處理邏輯,但在把資料部署在頁面上的靈活性大大減少。

其三,開心網搶車位的反外掛程式**。在抓包的時候看到乙個acc變數,但它的值通過明文卻沒有搜尋到,於是我意識到這是乙個js生成的anti-bot校驗碼。最後在搶車位的頁面找到如下**:

vargab16="c0af48b44127";

varacc3="cbaktr0f1";

functionacc()

vard7d65="7ec2d7bd3de3";

varg761c="90fc480bdfca";

varacc3="cbaktr0f1";

functionacc()

vard8a22="640240afe45c";

var  gab16  =  "c0af48b44127";

var acc3 = "cbaktr0f1";

function acc()

var d7d65 = "7ec2d7bd3de3";

var g761c = "90fc480bdfca";

var acc3 = "cbaktr0f1";

function acc()

var d8a22 = "640240afe45c";

反覆測試後,發現這段**通過隨機的變數名和隨機的方法來構造出acc值。有的時候是charcodeat,有的時候是length,有的時候是substr。不過語法太過簡單,輕而易舉就能轉化成php語法,一算就出來了。相比之下很多廣告聯盟的anti-bot**更複雜很多。

其四,最近我們技術部在討論靜態檔案的permanent link問題,看了看開心網這樣包含不少/flash的頁面,發現沒有特別的部署permanent link,一些可能經常公升級的js檔案採用了filename-n.js這樣的版本號部署,可是這個方案已經被我們否決了,原因是改乙個靜態檔案得修改相關的動態程式模板。這種模式要求上線後的靜態檔案不能隔三岔五的修改,否則修改版本就要死人。不過開心網通過chinacdn來cdn的靜態檔案,流量壓力有所減少吧。

找一些開心的理由

最近心情不是很好,總是說些洩氣的話,做些不愉快的事,讓自己越來越缺乏動力去工作,也影響到身邊的人。我知道這樣是不對的,我要努力找一些讓自己開心的理由。早上等班車的時候,在路邊的飯館裡看見了一條狗,它蹲在玻璃門後面,一動不動,我起先還以為是雕塑呢,後來才發現是活物,而且受過良好訓練,體形彪悍,行動敏捷...

一些可以讓人可以開心的方法

24 0xff return this.fontmap.substring 2 id 1 2 id 一些可以讓人可以開心的方法 人在這個世界上生存,如果每一天只知道不停地忙碌,然後,就是不知所謂地活著,那是一種悲哀。但仍有很多人還是在這樣不知所謂地忙碌著,為生存而生存。最近,看得最多的是一些企業的老...

關於裸裝置的一些網札

1 什麼叫做裸裝置?裸裝置,也叫裸分割槽 原始分割槽 是一種沒有經過格式化,不被unix通過檔案系統來讀取的特殊字元裝置。它由應用程式負責對它進行讀寫操作。不經過檔案系統的緩衝。2 如何辨別裸裝置?在unix的 dev目錄下,有許多檔案,其中有兩個大類 字元裝置檔案和塊裝置檔案。字元裝置特殊檔案進行...