Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
所以我有这个接受单个参数的现有命令,但我需要一些可以通过标准输入接受参数的东西。
像下面这样的 shell 脚本包装器可以工作,但由于我将允许不受信任的用户在标准输入上传递任意字符串,我想知道是否有人可能在 shell 上执行任意命令。
#!/bin/sh $CMD "`cat`"
显然,如果 $CMD 在处理参数的方式上有漏洞,我无能为力,所以我担心这样的事情:
该参数对我来说看起来不错,但命令可能有点不稳定,如果它可以有一个空格。此外,如果您只想从用户那里得到一行,那么您可能更喜欢这样:
#!/bin/bash read line exec "$CMD" "$line"
"$(cmd)"如果可以扩展到多个单词,则会破坏很多代码。
"$(cmd)"