因此,我有一个现有的命令,它接受单个参数,但我需要一些东西来接受stdin上的参数。
shell脚本包装如下所示,但由于我将允许不受信任的用户在stdin上传递任意字符串,我想知道是否有可能有人在shell上执行任意命令。
#!/bin/sh
$CMD "`cat`"显然,如果$CMD在处理该论点的方式上存在漏洞,那么我就无能为力了,所以我担心的是:
发布于 2012-07-04 21:23:45
在我看来,这个参数很好,但是如果它中有一个空格,那么命令可能会有点不稳定。另外,如果您只想从用户那里得到一行,那么您可能更喜欢这样:
#!/bin/bash
read line
exec "$CMD" "$line"发布于 2012-07-04 21:25:05
如果"$(cmd)"可以扩展到多个单词,那么许多代码就会中断。
https://stackoverflow.com/questions/11335511
复制相似问题