当前位置:  开发笔记 > 编程语言 > 正文

命令行代理的最佳方法?

如何解决《命令行代理的最佳方法?》经验,为你挑选了1个好方法。

我想在Python中编写一个简单的命令行代理,以便位于Telnet/SSH连接和本地串行接口之间.应用程序应该简单地在两者之间桥接I/O,但过滤掉某些不允许的字符串(由正则表达式匹配).(这适用于路由器/交换机实验室,在该实验室中,用户可以远程串行访问这些盒子.)

基本上,客户端建立了与守护进程的Telnet或SSH连接.守护进程将客户端的输入传递出去(例如)/ dev/ttyS0,并将来自ttyS0的输入传递回客户端.但是,我希望能够将来自客户端的某些字符串列入黑名单.例如,不应该允许命令'delete foo'.

我不确定如何最好地接近这个.沟通必须是异步的; 我不能简单地等待回车以允许缓冲区从串行接口输出.将正则表达式与流匹配似乎也很棘手,因为必须截获以下所有内容:

delete foo(enter)
del foo(enter)
el foo(ctrl+a)d(enter)
dl(left)e(right) foo(enter)

......等等.唯一可靠的分隔符是CR/LF.

我希望有人能指出我正确的方向.我一直在浏览Python模块,但到目前为止还没有提出任何建议.



1> Devin Cearta..:

Python不是我的主要语言,因此我将把这部分答案留给其他人.不过,我做了很多安全工作,我会敦促采用"白名单"方法,而不是"黑名单"方法.换句话说,选择一组安全命令并禁止所有其他命令.这比试图考虑所有恶意可能性并防范所有这些可能性要容易得多.

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有