是否有python模块判断命令字符串是否会对linux系统产生修改??
我们有个系统, 允许执行客户post过来的命令, 调用ansible api 在远程系统上执行命令,
应该限制只有查询类命令, 比如
ps -ef | grep java
netstat -anpt | grep 1234
但是, 客户可能会修改系统, 写的如下命令
ps -ef | grep java | rm somefile
netstat -anpt | grep 1234 | pkill someprocess
是否有python的模块或者其他方法判定命令一个命令字符串是否会对系统产生修改
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
检查命令字符串不能防范未知的风险,建议从执行命令的用户/组着手,做一个安全沙盒。
我换了种做法,
每种查询类命令比如 ps/ss, 查询后, 一般都是做grep 操作
我们限制用户执行的命令种类, 比如 ps/ss, 用户post时, 选择执行的命令类型,
并只能添加过滤关键字, 格式类似于
依次校验 key1..., 限制key只能是单词或包含有限的特殊字符, 拼接执行时不会对系统产生影响的,
这类校验就比较简单了, 一个正则就可以确定,
如下
在拼接命令后, 最终的执行格式如下
这样就达到了在用户post关键字后校验命令仅会查询, 不会对系统产生影响