本公開涉及數據交互領域,尤其涉及數據訪問方法、數據訪問裝置及存儲介質。
背景技術:
1、低級字節碼格式(wasm,webassembly)是一種中間表示形式,通常用于在不同的編程語言、平臺或者執行環境之間進行交互或者傳輸代碼。它是一種比源代碼更接近底層機器語言的表示形式,包含了較低層次的指令、數據和操作碼,以及對應的操作數。webassembly是一種用于在web瀏覽器中執行高性能二進制代碼的低級字節碼格式。它能夠使開發人員能夠以比傳統的javascript更接近本地代碼的方式在瀏覽器中運行應用程序。
2、相關技術中,低級字節碼格式wasm應用的整個應用內存都是可讀可寫的,導致存儲在應用內存中支持應用正常功能的固有數據是可被更改的,影響低級字節碼格式應用的正常運行。
技術實現思路
1、為克服相關技術中存在的問題,本公開提供一種數據訪問方法、數據訪問裝置及存儲介質。
2、根據本公開實施例的第一方面,提供一種數據訪問方法,包括:響應于接收到低級字節碼格式wasm應用發出的數據訪問指令,確定數據訪問指令對應的訪問地址;響應于所述訪問地址在第一內存對應的地址范圍內,在wasm編譯過程中,通過編譯器插件確定數據訪問指令的指令類型;響應于所述數據訪問指令為數據寫入指令,進行報錯,提示數據訪問流程出現錯誤,所述第一內存為只讀內存,用于存儲所述低級字節碼格式wasm應用的固有數據。
3、一種實施方式中,所述第一內存采用如下方式確定:響應于接收到數據定義指令,在wasm編譯過程中,通過編譯器插件在所述低級字節碼格式wasm應用的固有數據段上增加額外屬性,將增加額外屬性的固有數據段確定為只讀數據;將所述只讀數據存儲在自定義區域,并將存儲所述只讀數據的自定義區域,確定為所述第一內存。
4、一種實施方式中,所述第一內存的容量等同于所述只讀數據的數據段長度。
5、一種實施方式中,所述方法還包括:響應于訪問地址在第一內存對應的地址范圍內,在wasm編譯過程中,通過編譯器插件記錄所述訪問地址,并將所述數據訪問指令替換為調用參數為所述訪問地址的調用函數,所述調用函數用于調用所述第一內存對應的地址范圍內的固有數據。
6、一種實施方式中,所述方法還包括:響應于訪問地址在第一內存對應的地址范圍內,且所述數據訪問指令為數據讀取指令,通過調用函數讀取所述數據讀取指令對應的內存地址中的數據。
7、一種實施方式中,所述通過調用函數讀取所述數據讀取指令對應的內存地址中的數據,包括:響應于所述訪問地址在第一內存對應的地址范圍內,通過所述編譯器插件解析所述數據訪問指令,確定所述數據訪問指令的指令類型;響應于所述數據訪問指令為數據讀取指令,通過所述數據訪問指令轉化得到的調用函數,返回所述數據訪問指令所要讀取的固有數據的字符值。
8、根據本公開實施例的第二方面,提供一種數據訪問裝置,包括:確定單元,用于響應于接收到低級字節碼格式wasm應用發出的數據訪問指令,確定數據訪問指令對應的訪問地址;處理單元,響應于所述訪問地址在第一內存對應的地址范圍內,在wasm編譯過程中,通過編譯器插件確定數據訪問指令的指令類型,響應于所述數據訪問指令為數據寫入指令,進行報錯,提示數據訪問流程出現錯誤,所述第一內存為只讀內存,用于存儲所述低級字節碼格式wasm應用的固有數據。
9、一種實施方式中,所述第一內存通過處理單元采用如下方式確定:響應于接收到數據定義指令,在wasm編譯過程中,通過編譯器插件在所述低級字節碼格式wasm應用的固有數據段上增加額外屬性,將增加額外屬性的固有數據段確定為只讀數據;將所述只讀數據存儲在自定義區域,并將存儲所述只讀數據的自定義區域,確定為所述第一內存。
10、一種實施方式中,所述第一內存的容量等同于所述只讀數據的數據段長度。
11、一種實施方式中,所述處理單元還用于:響應于訪問地址在第一內存對應的地址范圍內,在wasm編譯過程中,通過編譯器插件記錄所述訪問地址,并將所述數據訪問指令替換為調用參數為所述訪問地址的調用函數,所述調用函數用于調用所述第一內存對應的地址范圍內的固有數據。
12、一種實施方式中,所述處理單元還用于:響應于訪問地址在第一內存對應的地址范圍內,且所述數據訪問指令為數據讀取指令,通過調用函數讀取所述數據讀取指令對應的內存地址中的數據。
13、一種實施方式中,所述處理單元采用如下方式通過調用函數讀取所述數據讀取指令對應的內存地址中的數據:響應于所述訪問地址在第一內存對應的地址范圍內,通過所述編譯器插件解析所述數據訪問指令,確定所述數據訪問指令的指令類型;響應于所述數據訪問指令為數據讀取指令,通過所述數據訪問指令轉化得到的調用函數,返回所述數據訪問指令所要讀取的固有數據的字符值。
14、根據本公開實施例的第三方面,提供一種數據訪問裝置,包括:處理器:用于存儲處理器可執行指令的存儲器;其中,所述處理器被配置為:執行第一方面或者第一方面任意一種實施方式中所述的數據訪問方法。
15、根據本公開實施例的第四方面,提供一種存儲介質,所述存儲介質中存儲有指令,當所述存儲介質中的指令由處理器執行時,使得處理器能夠執行第一方面或者第一方面任意一種實施方式中所述的數據訪問方法。
16、本公開的實施例提供的技術方案可以包括以下有益效果:在接收到低級字節碼格式wasm應用發出的數據訪問指令,且確定對應訪問地址在只讀內存對應的地址范圍內,則在wasm編譯過程中通過編譯器插件確定數據訪問指令的指令類型。在數據訪問指令為數據寫入指令,進行報錯,提示數據訪問流程出現錯誤。通過本公開,將低級字節碼格式wasm應用中的固有數據存儲在系統的只讀內存中,使固有數據無法被修改,提高應用的安全性,降低應用的安全風險并減少內存的使用。
17、應當理解的是,以上的一般描述和后文的細節描述僅是示例性和解釋性的,并不能限制本公開。
1.一種數據訪問方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述第一內存采用如下方式確定:
3.根據權利要求2所述的方法,其特征在于,所述第一內存的容量等同于所述只讀數據的數據段長度。
4.根據權利要求1所述的方法,其特征在于,所述方法還包括:
5.根據權利要求1所述的方法,其特征在于,所述方法還包括:
6.根據權利要求5所述的方法,其特征在于,所述通過調用函數讀取所述數據讀取指令對應的內存地址中的數據,包括:
7.一種數據訪問裝置,其特征在于,包括:
8.根據權利要求7所述的裝置,其特征在于,所述第一內存通過處理單元采用如下方式確定:
9.根據權利要求8所述的裝置,其特征在于,所述第一內存的容量等同于所述只讀數據的數據段長度。
10.根據權利要求7所述的裝置,其特征在于,所述處理單元還用于:
11.根據權利要求7所述的裝置,其特征在于,所述處理單元還用于:
12.根據權利要求11所述的裝置,其特征在于,所述處理單元采用如下方式通過調用函數讀取所述數據讀取指令對應的內存地址中的數據:
13.一種數據訪問裝置,其特征在于,包括:
14.一種存儲介質,其特征在于,所述存儲介質中存儲有指令,當所述存儲介質中的指令由處理器執行時,使得處理器能夠執行權利要求1至6中任一項所述的數據訪問方法。