linux re 字符串,是否有python模块判断命令字符串是否会对linux系统产生修改??

我换了种做法,

每种查询类命令比如 ps/ss, 查询后, 一般都是做grep 操作

我们限制用户执行的命令种类, 比如 ps/ss, 用户post时, 选择执行的命令类型,

并只能添加过滤关键字, 格式类似于

key1 key2 key3

依次校验 key1..., 限制key只能是单词或包含有限的特殊字符, 拼接执行时不会对系统产生影响的,

这类校验就比较简单了, 一个正则就可以确定,

如下

word_re = re.compile(r'([a-zA-Z0-9\.]+)')

greps = []

for key in keys:

matches = word_re.findall(key)

# key 包含特殊字符

if len(matches) == 0 or len(matches) > 1 or matches[0] != key:

return send_msg(from_user, f'进程关键字包含特殊字符: {key}')

greps.append(f'grep -i {key}')

cmd = f'ps -ef | {"|".join(greps)}'

在拼接命令后, 最终的执行格式如下

ps -ef | grep key1 | grep key2 | grep key3

这样就达到了在用户post关键字后校验命令仅会查询, 不会对系统产生影响

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值