aug*_*tin 4 c++ linux security escaping
在Linux平台上,我有C++代码,如下所示:
// ...
std::string myDir;
myDir = argv[1]; // myDir is initialized using user input from the command line.
std::string command;
command = "mkdir " + myDir;
if (system(command.c_str()) != 0) {
return 1;
}
// continue....
Run Code Online (Sandbox Code Playgroud)
谢谢.
Mat*_*hen 10
只是不要使用system.喜欢execl.
execl ("/bin/mkdir", "mkdir", myDir, (char *)0);
Run Code Online (Sandbox Code Playgroud)
这样,myDir总是作为单个参数传递给mkdir,并且不涉及shell.请注意,fork如果使用此方法,则需要.
但如果这不仅仅是一个例子,你应该使用mkdirC函数:
mkdir(myDir, someMode);
Run Code Online (Sandbox Code Playgroud)