[发明专利]一种基于脚本交叉编译的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.vipzhuanli.com/pat/books/202110239130.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种带送料卸料的探针侧孔加工设备
- 下一篇:一种高速重载列车快速清洁装置