摘要:
JavaScript代碼屬于程序開發(fā)代碼的一種,此種代碼應用可以對事件真假等進行判定,并完成相應的程序設計,進一步優(yōu)化操作程序,滿足用戶需求,提高程序體驗感,增強程序?qū)嵱眯浴kS著網(wǎng)絡技術(shù)、程序設計與開發(fā)等技術(shù)的不斷發(fā)展,近些年對JavaScript代碼要求越來越高,本文將綜述近年來JavaScript代碼的檢測、性能、語義等方面的研究進展,以探究未來JavaScript代碼技術(shù)發(fā)展趨勢,適應實際程序開發(fā)需求。
關鍵詞:
代碼分析;JavaScript;框架;技術(shù)進展
中圖分類號:
TP311.52;TP312.2
文獻標識碼:
A
文章編號:
1672-9129(2020)15-0064-02
JavaScript代碼作為一種程序代碼,此種代碼具有很強的靈活性,可以穿插在許多程序開發(fā)之中,充分滿足不同程序?qū)Υ朔N代碼地調(diào)用。例如,此代碼可以應用在CSS、HTML、瀏覽器事件、DOM等程序開發(fā)語言之中,充分滿足不同程序?qū)Υ舜a地調(diào)用,提高程序本身品質(zhì)。近年來,隨著網(wǎng)絡技術(shù)、機器人技術(shù)、人工智能技術(shù)等全面發(fā)展,JavaScript代碼被調(diào)用越來愈多。以網(wǎng)絡上多種多樣的廣告為例,為了對網(wǎng)絡廣告追蹤、識別,并充分將某些網(wǎng)頁廣告過濾掉,就可以添加JavaScript代碼,后通過代碼調(diào)用,實現(xiàn)對廣告的過濾等操作[1]。
1研究目的及方法
本文主要研究目的探究近年來JavaScript代碼技術(shù)主要研究進展,從中分析該技術(shù)近年來發(fā)展的主流趨勢,以為未來該代碼技術(shù)的全面發(fā)展提供支持。本文研究方法為文獻法,參考分析近年來關于JavaScript代碼分析相關課題研究,總結(jié)JavaScript代碼技術(shù)發(fā)展特征及趨勢。例如,《使用程序分析和特征識別方法過濾網(wǎng)頁廣告》[2]一文研究中分析了JavaScript代碼特征識別、程序分析等方法,以有效過濾網(wǎng)頁廣告,為用戶提供一個良好的網(wǎng)頁環(huán)境,提高用戶程序使用滿意度,尋找網(wǎng)絡程序發(fā)展新出路。同時通過在計算機相關程序中,調(diào)用JavaScript代碼加強對網(wǎng)頁廣告過濾質(zhì)量,便于第一時間鎖定存在病毒廣告,進行追蹤,提高網(wǎng)絡與電腦安全性,滿足用戶實際網(wǎng)絡與計算機使用需求。
2近年來JavaScript代碼分析技術(shù)的研究進展
2.1JavaScript代碼檢測研究。關于JavaScript代碼混淆這一概念理解,普遍認為在現(xiàn)有程序及其程序所有的算法,使程序出現(xiàn)了混淆,并形成一個類似的“鏡像程序”?!扮R像程序”在功能等方面與原程序并沒有任何差異,但是“鏡像程序”在分析與理解上難度遠超于原程序。而JavaScript代碼存在的本質(zhì),是對程序相關結(jié)構(gòu)進行調(diào)整與識別,以對程序識別到無法調(diào)節(jié)為最終目的。這樣可以對程序相關代碼進行加密處理,同時并不影響程序本身運行性能。而由于JavaScript代碼具有很強的靈活性,因此在程序開發(fā)過程中往往會使用混淆算法來對JavaScript代碼進行保護,使得代碼失去可讀性,來起到保護代碼的作用。例如,加密后代碼顯示為var.0x7037-+["x65yx8x07x696x272656x737"Wx6EWx756D......無法獲取原程序代碼。從混淆技術(shù)出現(xiàn)后關于反混淆技術(shù)(與混淆技術(shù)完全相反)與混淆技術(shù)的研究一直持續(xù)至今,一些使用較早的類似于JAVA代碼語言,在混淆與反混淆技術(shù)研究中已經(jīng)十分全面與深入,但JavaScript代碼混淆技術(shù)與反混淆技術(shù)研究并不多,盡管當前網(wǎng)絡上可提供一定在線相關反混淆應用,但均較單一,在加強型、復合型、混合型混淆技術(shù)研究上并不夠深入。
在文獻[3]研究中根據(jù)JavaScript代碼檢測混淆與反混淆技術(shù)研究不深入等現(xiàn)狀,提出了檢測混淆改進策略,提出在該代碼反混淆與混淆技術(shù)研究中,研究重點側(cè)重于反混淆成功率方面,以及如何才能更好將反混淆技術(shù)應用于程序代碼設計之中,以更好地分析存在惡意的腳本。JavaScript代碼混淆技術(shù)的發(fā)展,一方面提高了代碼的安全性,但另一方面使得惡意代碼的反混淆越來艱難,即使通過一定的反混淆技術(shù)處理也難以保證獲得的JavaScript代碼同原代碼一模一樣,比如一些程序代碼中存在死代碼,有效識別這些死代碼對于進一步避免程序邏輯冗余具有重要意義。針對這種情況,文獻[3]中提出兩種解決辦法,一種為不斷擴充混淆代碼腳本,使得再次出現(xiàn)此種代碼時可以第一時間識別,另一種為將JavaScript代碼腳本看做為NLP(自然語言),之后利用N-gram模型應用于代碼混淆檢測之中,實現(xiàn)代碼分詞,后通過不同維度輸入信息,判定結(jié)果,在語義研究方面下文再行詳細敘述。
2.2JavaScript代碼性能研究。JavaScript代碼作為程序可以調(diào)用的主要代碼語言,其對于程序本身性能影響很大,程序開發(fā)人員可以通過對JavaScript代碼性能的研究與改進,使得所用或者調(diào)用此代碼的程序更加流暢,減少程序延遲時間,提高用戶滿意度,為程序本身優(yōu)化提供支持。近年來在JavaScript代碼性能研究上發(fā)展較為迅速,越來越多程序開發(fā)與研究人員關注到該代碼在網(wǎng)頁加載、網(wǎng)頁翻屏等方面的應用與研究,以借助JavaScript代碼實現(xiàn)網(wǎng)頁性能地提升。在文獻[4]中對網(wǎng)頁加載時JavaScript代碼效率提高機制進行了研究,研究中分析了JavaScript代碼加載的過程,無論是采用直接或者內(nèi)嵌此代碼設計方式,由于瀏覽器相關程序并不知道此代碼是否會對當前文件結(jié)構(gòu)產(chǎn)生影響,因此瀏覽器會用很大時間去將JavaScript代碼文件下載下來,之后對文件進行解析與執(zhí)行,這個下載、分析、執(zhí)行過程很長,很大程度上會影響原本頁面交互設計效果地實現(xiàn),或者影響頁面渲染效果地實現(xiàn),因此提高JavaScript代碼性能顯得尤為重要。文獻[4]中提出兩種解決方式,一種使用DOM訪問機制優(yōu)化辦法,另一種通過加快JavaScript代碼數(shù)據(jù)讀取、存儲速度達到加快網(wǎng)頁加載速度目的。文獻[5]中則主要研究了網(wǎng)頁翻屏借助JavaScript代碼與JQuery代碼實現(xiàn),JQuery代碼設計中具備自身獨特之初,可以使得事件的處理更加靈活,進一步完善了Ajax,且此代碼與瀏覽器兼容性強,之后結(jié)合JavaScript代碼設計,實現(xiàn)了網(wǎng)頁翻屏設計。
2.3JavaScript代碼語義研究。上文在JavaScript代碼混淆檢測研究進展中,已經(jīng)分析到通過使用反混淆改進策略,使得對JavaScript代碼的檢測更加簡單,有效判斷程序中出現(xiàn)的惡意腳本,進一步優(yōu)化程序,提高程序本身質(zhì)量。在文獻[6]中則是以語義分析為切入點,分析基于語義分析惡意JavaScript代碼檢測方法,進一步深度探討代碼語義反混淆檢測技術(shù)。在該文獻中構(gòu)建一個以語義為基礎的惡意腳本檢測程序,該程序檢測流程主要分為訓練過程、檢測過程、判定過程。訓練過程主要流程為訓練樣本—詞法單元序列提取—詞向量模型—詞向量生成;檢測過程可與訓練過程一同進行,主要流程為待檢樣本—詞法單元序列提取—詞向量生成—LSTM分類模型;判定過程則會對代碼腳本進行判定,以準確判定是否為惡意腳本。
結(jié)語:進入21世紀之后JavaScript代碼技術(shù)有了新的發(fā)展,在技術(shù)的諸多方面均取得了相當不錯的成果,JavaScript代碼技術(shù)的進一步發(fā)展提供了無限可能,同時在技術(shù)發(fā)展中也面臨著一定的問題,未來技術(shù)發(fā)展還需要進一步探索,以有效探究技術(shù)持續(xù)性發(fā)展之道,使得JavaScript代碼技術(shù)可以更好適應實際程序開發(fā)需要。本文研究中從代碼檢測、代碼性能、代碼語義等方面研究進展進行分析,發(fā)現(xiàn)JavaScript代碼技術(shù)朝著更加精細化、人性化方向發(fā)展,反混淆檢測技術(shù)、性能提升技術(shù)、語義分析技術(shù)等均有所發(fā)展,但依舊還有很大發(fā)展空間,相關技術(shù)研究人員可從此方面入手,深入研究JavaScript代碼技術(shù),完善在程序開發(fā)中此代碼調(diào)用存在的不足,進一步提高程序品質(zhì),促進程序開發(fā)技術(shù)的進步與發(fā)展。
參考文獻:
[1]許蕾,LeiXU,劉蕊成,etal.基于Jalangi的廣告代碼調(diào)用路徑追蹤[J].軟件學報,2019,Vol.30Issue(7):2124-2138.
[2]何欣程,查春柳,許蕾.使用程序分析和特征識別方法過濾網(wǎng)頁廣告[J].小型微型計算機系統(tǒng),2018(9):1998-2002.
[3]崔瑩.JavaScript代碼混淆的檢測和反混淆應用研究[J].集寧師范學院學報,2020(3),7-11.
[4]龐雙玉.網(wǎng)頁加載時JavaScript代碼效率提高機制探討[J].數(shù)字技術(shù)與應用,2017(7):232-232.
[5]鄧緋.使用JavaScript+JQuery實現(xiàn)網(wǎng)頁翻屏[J].福建電腦.2020(6):134-135.
[6]邱瑤瑤,方勇,黃誠.基于語義分析的惡意JavaScript代碼檢測方法[J].四川大學學報:自然科學版,2019(2),273-278.
作者簡介:呂曉芳(1983-),女,河南鄭州,鄭州電力職業(yè)技術(shù)學院,講師,主要從事網(wǎng)站開發(fā)方向研究。