首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从stdin到shell的任意输入

从stdin到shell的任意输入
EN

Stack Overflow用户
提问于 2012-07-04 21:14:13
回答 2查看 101关注 0票数 0

因此,我有一个现有的命令,它接受单个参数,但我需要一些东西来接受stdin上的参数。

shell脚本包装如下所示,但由于我将允许不受信任的用户在stdin上传递任意字符串,我想知道是否有可能有人在shell上执行任意命令。

代码语言:javascript
复制
#!/bin/sh
$CMD "`cat`"

显然,如果$CMD在处理该论点的方式上存在漏洞,那么我就无能为力了,所以我担心的是:

  • 允许用户转义双引号,并将输入传递到$CMD的参数#2
  • 以某种方式导致另一个任意命令运行
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-04 21:23:45

在我看来,这个参数很好,但是如果它中有一个空格,那么命令可能会有点不稳定。另外,如果您只想从用户那里得到一行,那么您可能更喜欢这样:

代码语言:javascript
复制
#!/bin/bash

read line
exec "$CMD" "$line"
票数 0
EN

Stack Overflow用户

发布于 2012-07-04 21:25:05

如果"$(cmd)"可以扩展到多个单词,那么许多代码就会中断。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11335511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档