gpt4 book ai didi

c++ - 如何在 C++ 中转义发送到 'system' 命令的变量?

转载 作者:IT王子 更新时间:2023-10-29 01:14:29 26 4
gpt4 key购买 nike

This question谈论使用 system 命令和传递变量。这是它给出的一个例子:

string cmd("curl -b cookie.txt -d test=");
cmd += line;
cmd += " http://example.com";
system(cmd.c_str());

其中一条评论提到,如果 line 被传递并包含 foo & fire_nukes.exe & REM 那么很可能会发生一些不好的事情。

PHP 有一个很棒的函数,叫做 escape_shell_args,它可以用来转义传递给程序的参数。 C++ 有办法做到这一点吗?

最佳答案

永远不要将用户输入传递给 system 调用。曾经。

您可以尝试转义所有您认为危险的字符,但您会出错。

相反,从另一个方向着手:让用户提供定义的输入选择,然后执行切换并构建您自己的系统从头开始调用。

不可否认,当要调用的命令行应用程序的输入是自由形式时,这会变得有点棘手,但是,这就是实际库的用途。 libcurl,有人吗?

关于c++ - 如何在 C++ 中转义发送到 'system' 命令的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8539243/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com