tcl/tk safe - 2 - Safe Base

本文介绍了TCL的Safe Base,它是安全模式解释器的一种扩展,允许在子解释器中执行脚本文件和操作包,但需主解释器授权,并且限制了exit命令,确保子解释器退出不会影响主程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上一篇http://blog.youkuaiyun.com/msptop/archive/2008/03/31/2233187.aspx 中介绍了关于安全模式的解释器基本特性。然而这些特性太简单太原始,没有脚本库环境,使用起来需要构造大量的额外代码,才能正确执行所需功能。

本节将会介绍tcl提供的已经封装好的安全模式解释器The Safe Base。Safe Base是原始安全模式的扩展,在这种扩展模式下,可以在子解释器中执行脚本文件(source命令)和操作包(package 命令),但是这些操作需要主解释器的授权,它只能访问在主解释器中定义的路径下的文件。并且它也“覆盖”了exit命令。在这种模式下,若执行exit,则子解释器自行销毁并不会波及主程序。

Safe Base的有关命令如下表:

safe::interpCreate slave options?

创建一个Safe Base模式名为slave的解释器

safe::interpInit slave options?

初始化一个安全模式的解释器

safe::interpConfigure slave options?

配置Safe Base模式的解释器,支持属性:-accessPath pathlist, -nostatics, -deleteHook script, -nestedLoadOk

safe::interpDelete slave

删除SafeBase模式的解释器slave

safe::interpAddToAccessPath slave directory

为slave添加授权访问路径

safe::interpFindInAccessPath slave path

返回授权访问路径的符号(用于标识该路径)

safe::setLogCmd cmd? arg?...

若没有参数则返回所有在改解释器中执行过的命令与history类似,若有参数,则将该参数加入记录在解释器中执行过命令的log

 

Safe Base中的命令别名:

source

在授权访问路径中执行脚本

load

在授权访问路径中导入二进制库

file

只有dirname, join, extension, root, tail, pathname, and split 这些操作被允许

exit

销毁调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值