短網(wǎng)址網(wǎng)頁(yè)源碼項(xiàng)目相關(guān)的關(guān)鍵技術(shù)
————認(rèn)證資質(zhì)————
- 個(gè)人未認(rèn)證
- 企業(yè)未認(rèn)證
- 微信已認(rèn)證
- 手機(jī)已認(rèn)證
線(xiàn)上溝通
與商家溝通核實(shí)商家資質(zhì)
線(xiàn)下服務(wù)
核實(shí)商家身份所有交流確保留有證據(jù)
服務(wù)售后
有保障期的服務(wù)請(qǐng)與商家確定保障實(shí)效
| 服務(wù) | 網(wǎng)站推廣 | 詳細(xì)地址 | 明智大廈 |
短網(wǎng)址網(wǎng)頁(yè)源碼項(xiàng)目相關(guān)的關(guān)鍵技術(shù)
短網(wǎng)址網(wǎng)頁(yè)項(xiàng)目相關(guān)的關(guān)鍵技術(shù):網(wǎng)頁(yè)源碼解析技術(shù)、HASH算法、KMP字符串匹配算法、正則表達(dá)式,并對(duì)其中一些技術(shù)在項(xiàng)目中的使用方法、具體實(shí)現(xiàn)和使用位置進(jìn)行了說(shuō)明。
短網(wǎng)址網(wǎng)頁(yè)的DOM結(jié)構(gòu)
文件對(duì)象模型(Document Object Model,簡(jiǎn)稱(chēng)DOM),是W3C組織推薦的可處理與系統(tǒng)平臺(tái)和編程語(yǔ)言無(wú)關(guān)的可擴(kuò)展標(biāo)記語(yǔ)言的標(biāo)準(zhǔn)編程接口。在標(biāo)準(zhǔn)的DOM文檔中,文檔在解析后被轉(zhuǎn)化為DOM樹(shù),樹(shù)的每個(gè)節(jié)點(diǎn)是一個(gè)對(duì)象。DOM模型描述了文搜的結(jié)構(gòu),同時(shí)還定義了節(jié)點(diǎn)對(duì)象的行為,通過(guò)將對(duì)象的方法和屬性與木馬特征值進(jìn)行匹配,將很大一定程度上提高木馬特征值的匹配效率。網(wǎng)頁(yè)DOM樹(shù)結(jié)構(gòu)。
短網(wǎng)址網(wǎng)頁(yè)源碼解析
在短網(wǎng)址系統(tǒng)中,當(dāng)短網(wǎng)址網(wǎng)頁(yè)爬蟲(chóng)將短網(wǎng)址網(wǎng)頁(yè)源數(shù)據(jù)爬取到本地后,系統(tǒng)會(huì)開(kāi)始對(duì)短網(wǎng)址網(wǎng)頁(yè)源碼進(jìn)行解析。
首先使用jgroup解析器將html文件轉(zhuǎn)化為xhtml,再依據(jù)DOM庫(kù)生成xml文件并建立DOM樹(shù)。從DOM樹(shù)中分別獲取到包含圖片和包含文字的標(biāo)簽,記錄其屬性值,
通過(guò)對(duì)比屬性檢測(cè)頁(yè)面內(nèi)容是否被篡改由于DOM樹(shù)中的節(jié)點(diǎn)按文檔中的標(biāo)記或信息片段來(lái)形成的,在加載整個(gè)文檔成功構(gòu)建DOM樹(shù)后,將符合網(wǎng)頁(yè)掛馬類(lèi)型的DOM樹(shù)節(jié)點(diǎn)的關(guān)鍵字輸出成事件序列,然后根據(jù)運(yùn)些關(guān)鍵字再與此結(jié)果標(biāo)簽的短網(wǎng)址網(wǎng)頁(yè)源碼與數(shù)據(jù)庫(kù)中短網(wǎng)址網(wǎng)頁(yè)木馬特征規(guī)則屬性值通過(guò)KMP字符串匹配算法進(jìn)行比對(duì)。這樣從DOM樹(shù)節(jié)點(diǎn)中找到關(guān)鍵字后就可以利用樹(shù)型模型中的節(jié)點(diǎn)導(dǎo)航尋找特定源碼信息,再與木馬庫(kù)的正則表達(dá)式進(jìn)行進(jìn)一步比對(duì),從而確認(rèn)短網(wǎng)址網(wǎng)頁(yè)是否被掛馬,此來(lái)提高檢短網(wǎng)址網(wǎng)頁(yè)木馬的效率,并減少因建立完整DOM樹(shù)所消耗的資源。
短網(wǎng)址的Hash算法
短網(wǎng)址Hash算法將任意長(zhǎng)度的二進(jìn)制值映射為較短的固定長(zhǎng)度的二進(jìn)制值,這個(gè)小的二進(jìn)制值稱(chēng)為Hash值。Hash值是一段數(shù)據(jù)唯一且極其緊湊的數(shù)值表示形式。如果散列一段明文而且哪怕只更改該段落的一個(gè)字母,隨后的Hash都將產(chǎn)生不同的值。MD5是一種符合工業(yè)標(biāo)準(zhǔn)的單向128位的Hash方案,MD5典型應(yīng)用是對(duì)一段信息(Message)產(chǎn)生信息摘要(Message-Digest),以防止被篡改。
短網(wǎng)址系統(tǒng)在查詢(xún)短網(wǎng)址網(wǎng)頁(yè)是否被篡改時(shí),先通過(guò)tidy工具結(jié)合String類(lèi)里面的replace函數(shù)替換掉了內(nèi)容基本不會(huì)變化的script和style標(biāo)簽,然后通過(guò)MD5加密短網(wǎng)址網(wǎng)頁(yè)html代碼與模板進(jìn)行對(duì)比,若獲取短網(wǎng)址網(wǎng)頁(yè)的MD5編碼與模板的相同則說(shuō)明未篡改,否則進(jìn)行字節(jié)匹配,查詢(xún)具體的篡改位置。
短網(wǎng)址正表達(dá)式
正則表達(dá)式,又稱(chēng)正規(guī)表示法、常規(guī)表示法(英語(yǔ):Regular Expression,在代碼中常簡(jiǎn)寫(xiě)為regex、regexp或民E),是計(jì)算機(jī)科學(xué)的一個(gè)概念。正則表達(dá)式使用單個(gè)字符串來(lái)描述、匹配一系列符合某個(gè)句法規(guī)則的字符串。在很多文本編輯器里,正則表達(dá)式通常被用來(lái)檢索、替換那些符合某個(gè)橫式的文本。
許多程序設(shè)計(jì)語(yǔ)言都支持利用正則表達(dá)式進(jìn)行字符串操作。正則表達(dá)式的匹配都是通過(guò)正則表達(dá)式引擎實(shí)現(xiàn)的。正則表達(dá)式引擎分為兩類(lèi):基于NFA(Nondeterministic Finite Automata,非確定型有巧狀態(tài)自動(dòng)機(jī)巧日基于DFA(Deterministic Finite Automaton,確定型有窮狀態(tài)自動(dòng)機(jī))的引擎。在正則表達(dá)式匹配過(guò)程中,遵循兩條重要的規(guī)則:1、優(yōu)先選擇左端的結(jié)果2、對(duì)標(biāo)準(zhǔn)匹配量詞m,n、+、、優(yōu)先使用貪婪模式。
在短網(wǎng)址系統(tǒng)中也多次用到正則表達(dá)式,與Pattern和Matcher配合使用,使問(wèn)題能更方便高效地得到解決。
原文來(lái)自:980.so
2)確認(rèn)收貨前請(qǐng)仔細(xì)核驗(yàn)產(chǎn)品質(zhì)量,避免出現(xiàn)以次充好的情況。
3)該信息由排行8用戶(hù)自行發(fā)布,其真實(shí)性及合法性由發(fā)布人負(fù)責(zé),排行8僅引用以供用戶(hù)參考,詳情請(qǐng)閱讀排行8免責(zé)條款。查看詳情>
-
祝一
請(qǐng)發(fā)送您要咨詢(xún)的內(nèi)容,以便及時(shí)解答。
