[發明專利]一種基于腳本交叉編譯的Python安全擴展方法在審
| 申請號: | 202110239130.0 | 申請日: | 2021-03-04 |
| 公開(公告)號: | CN113031931A | 公開(公告)日: | 2021-06-25 |
| 發明(設計)人: | 沈方陽;儲備;涂子豪;雷宇;賈夢 | 申請(專利權)人: | 嘉興豐鳥科技有限公司;奧本未來(北京)科技有限責任公司 |
| 主分類號: | G06F8/30 | 分類號: | G06F8/30;G06F8/41;G06F21/53 |
| 代理公司: | 北京德崇智捷知識產權代理有限公司 11467 | 代理人: | 王金雙 |
| 地址: | 314500 浙江省嘉興市桐*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 腳本 交叉 編譯 python 安全 擴展 方法 | ||
1.一種基于腳本交叉編譯的Python安全擴展方法,其特征在于,包括以下步驟:
定義圖靈完備的腳本語言,并提供函數調用功能;
在宿主程序中定義腳本語言程序安全規則;
從腳本語言源程序生成抽象語法樹;
對生成的抽象語法樹進行過濾和安全檢查;
從安全的抽象語法樹生成Python源代碼,在宿主環境中加載執行。
2.根據權利要求1所述的基于腳本交叉編譯的Python安全擴展方法,其特征在于,所述定義圖靈完備的腳本語言,并提供函數調用功能的步驟,還包括,
定義OSL腳本語言的語法,并用巴克斯范式進行表達;
證明OSL腳本語言的語法的圖靈完備性。
3.根據權利要求2所述的基于腳本交叉編譯的Python安全擴展方法,其特征在于,所述證明OSL腳本語言的語法的圖靈完備性的步驟,還包括,
對于圖靈機有限字符集,為每個字符創建一個變量;
構造一個內存允許的最大數組,表示圖靈機輸入輸出紙帶;
創建一個變量存儲當前讀寫頭位置;
創建一個變量存儲當前狀態編號;
用if-else條件轉移代碼塊,判斷實現所有狀態轉移函數;
根據當前狀態編號,改變讀寫頭位置數組變量值,并改變讀寫頭位置。
4.根據權利要求1所述的基于腳本交叉編譯的Python安全擴展方法,其特征在于,所述在宿主程序中定義腳本語言程序安全規則的步驟,還包括,
提供定義腳本程序可調用的系統函數、庫函數和自定義函數的Python函數;
創建對象數組,每個對象數據包含允許調用的函數名稱字符串,以及函數的參數類型和順序列表;
對于需要通過調用特殊Python對象方法實現的功能,提供普通函數進行調用轉發,并將普通函數加入可調用函數列表中;
提供設置腳本程序允許使用的靜態內存大小的函數,并將設置的大小記錄在變量中。
5.根據權利要求1所述的基于腳本交叉編譯的Python安全擴展方法,其特征在于,所述從腳本語言源程序生成抽象語法樹的步驟,還包括,
用Python實現的詞法分析器對OSL腳本源程序進行詞法分析,并定義關鍵字;
定義token類別;
定義字面量token;
定義token匹配規則;
從Token序列生成抽象語法樹。
6.根據權利要求1所述的基于腳本交叉編譯的Python安全擴展方法,其特征在于,所述從Token序列生成抽象語法樹的步驟,還包括,
定義抽象語法樹可包含的節點類型;
所有節點繼承自共同父類ASTNode,父類節點存儲當前節點的源程序行號,子節點列表;
使用Python實現的語法分析器,根據文法分析抽象語法樹節點,并構造抽象語法樹。
7.根據權利要求1所述的基于腳本交叉編譯的Python安全擴展方法,其特征在于,所述對生成的抽象語法樹進行過濾和安全檢查的步驟,還包括,
根據宿主程序記錄的允許調用函數列表,對生成的抽象語法樹進行遍歷,對抽象語法樹中所有可達的CallNode記錄的函數名稱和參數列表進行過濾,找出函數名稱和參數個數、類型與允許調用函數列表中任何項都不匹配的CallNode節點,將這些節點及其子樹刪除,對抽象語法樹進行剪枝;
對抽象語法樹進行遍歷,對所有的VarsDeclsNode和VarDeclInitNode中記錄的數據類型和個數進行統計,計算出程序運行時所需的內存大小,并和宿主程序中安全規則設置的允許內存占用大小進行比較,如果超過規則允許大小,則終止程序編譯,向用戶報告內存申請超界錯誤;
對抽象語法樹進行遍歷,對所有涉及間接內存訪問操作的節點進行索引越界檢查;
對編譯期可求出索引值的節點,與數組聲明或賦值時設置的大小進行比較,如果索引超出數組大小,對抽象語法樹進行剪枝,刪除該節點及子樹;
對于編譯期不可求值的索引值,在索引節點上添加索引檢查標志。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于嘉興豐鳥科技有限公司;奧本未來(北京)科技有限責任公司,未經嘉興豐鳥科技有限公司;奧本未來(北京)科技有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110239130.0/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種帶送料卸料的探針側孔加工設備
- 下一篇:一種高速重載列車快速清潔裝置





