0

我正在尝试编写一个程序,用户可以通过客户端的 comm::comm 命令读取服务器上的数据库。现在我想阻止来自客户端的某些命令,例如“文件删除”,所以我在服务器上创建了一个安全解释器,并希望在服务器上进行一些设置,以将所有命令从客户端放到安全解释器。有谁知道是否有任何机制可以实现这一目标?任何有用的答案将不胜感激!

4

1 回答 1

0

请参阅comm包的文档,尤其是有关eval事件挂钩的部分。

https://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/comm/comm.html#subsection9

例如像这样:

% interp create foo
% ::comm::comm hook eval {return [lb]foo eval $buffer[rb]}
% ::comm::comm send [lb]::comm::comm self[rb] set myvar 123
123
% set myvar
can't read "myvar": no such variable
% foo eval set myvar
123
于 2018-04-02T00:50:15.647 回答