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